Įdiekite kiekvieno tipo "MapChip" įvykių aptikimą

Puslapis atnaujintas :
Puslapio sukūrimo data :

Tikrinimo aplinka

Windows
  • Langai 11
"Unity" redaktorius
  • 2021.3.3F1
Įvesties sistemos paketas
  • 1.3.0

Būtinos šio patarimo sąlygos

Šie nustatymai buvo atlikti iš anksto kaip šio patarimo aprašymo prielaida.

Kokios yra šio patarimo prielaidos?

Apie žemėlapių medžiagos skolinimąsi

Mes apdorojame pasiskolintas iš šių svetainių.

Iš pradžių

Šį kartą "MapChips" dedami į vieną "TileMap" ir nusprendžiama, ar atlikti pataikymo nustatymą pagal pateikto "MapTip" tipą.

Kadangi šis patarimas iš esmės yra toks pat kaip kitas patarimas "Įdiekite įvykių aptikimą naudodami plytelių žemėlapius", Išsamų paaiškinimą rasite ten. Čia paaiškinama tik to paties turinio procedūra ir pridedami tik skirtumai.

Pėsčiųjų simbolių įgyvendinimas

Pirmiausia paruoškite "sprite" vaizdą, kurį grotuvas valdys, kad atliktų įvykio aptikimo operaciją, ir pridėkite jį prie savo projekto. Šį kartą žemėlapio patarimo dydis yra 32 pikseliai, todėl aš padarysiu vaizdą tokio paties dydžio.

Šį kartą praleisiu vaikščiojimo animaciją, nes procedūra bus ilga, jei ji bus įgyvendinta. Jei norite jį įgyvendinti, vadovaukitės šiais patarimais.

Pasirinkite vaizdą, kurį pridėjote prie projekto. Kadangi norime suderinti įrenginį su žemėlapio lustu, nustatykite "Pikselių skaičius vienete" į "32".

Sukonfigūravę spustelėkite žemiau esantį mygtuką "Taikyti".

Kai vaizdas bus nustatytas, numeskite vaizdą į rodinį ir pridėkite objektą.

Nustatykite veikėjo judėjimo procesą. Pridėkite scenarijų ir palikite jį pavadintą Player .

Scenarijus atrodo taip: Tai paprastas judėjimo procesas, kuris perkelia sprite klaviatūra.

using UnityEngine;
using UnityEngine.InputSystem;

public class Player : MonoBehaviour
{
  // 一定時間ごとに呼ばれます
  void FixedUpdate()
  {
    // キーボードの情報を取得
    var keyboard = Keyboard.current;

    // スプライトの移動処理
    if (keyboard.leftArrowKey.isPressed)
    {
      transform.Translate(-0.1f, 0, 0, Space.World);
    }
    if (keyboard.rightArrowKey.isPressed)
    {
      transform.Translate(0.1f, 0, 0, Space.World);
    }
    if (keyboard.upArrowKey.isPressed)
    {
      transform.Translate(0, 0.1f, 0, Space.World);
    }
    if (keyboard.downArrowKey.isPressed)
    {
      transform.Translate(0, -0.1f, 0, Space.World);
    }
  }
}

Jūsų sukurtas scenarijus pridedamas prie simbolio objekto.

Paleiskite žaidimą ir patikrinkite, ar simbolis juda klaviatūra.

Žemėlapių patarimų paruošimas

Paruoškite žemėlapio patarimo vaizdą ir pridėkite jį prie savo projekto. Didėjant žemėlapio žetonų skaičiui, nustatymas tampa varginantis, todėl šį kartą paruošėme tik du kvadratus, vieną, kurį galima vaikščioti, ir kitą, kuris negali vaikščioti.

Pasirinkite vaizdus, kuriuos pridėjote prie savo projekto, ir sukonfigūruokite "MapChips" nustatymus. Norėdami gauti daugiau informacijos, žiūrėkite šiuos patarimus:

Sukonfigūravę spustelėkite mygtuką Taikyti, tada mygtuką Sprite redaktorius.

Padalinkite iš 32 taškų.

Pasirinkite skirtuką Plytelių paletė, kad sukurtumėte paletę. Jei skirtukų nėra, galite juos rodyti meniu su "Window > 2D -> Tile Palette". Paletės pavadinimas gali būti bet koks, bet čia jis yra "MapChipPalette".

Kadangi išsaugosime jį aplanke, sukurkite naują aplanką "MapChipPalette" aplanke "Scene" ir nurodykite jį.

Prie projekto pridėtas aplankas MapChipPalette.

Tada prie paletės pridėsite žemėlapių patarimų. Nuvilkite padalinto žemėlapio patarimo vaizdą į paletę.

Žemėlapių patarimai buvo įtraukti į paletę.

Žemėlapio kūrimas

Palikite įvykių aptikimo nustatymus nuošalyje ir pirmiausia sukurkite žemėlapį. Vėliau galėsite nustatyti įvykių aptikimą. Pirmiausia į savo hierarchiją įtraukite plytelių žemėlapį.

Pridėję pasirinkite Tilemap. Rodinyje rodomas tinklelis.

Pirmiausia nustatykite žemėlapį, kuris vaizde netampa siena.

Kol kas viską padėjau ant vietos.

Tada padėkite akmens žemėlapio antgalį, kuris tarnaus kaip siena.

Šį kartą nebuvo jokių problemų, bet jei jūsų personažas bus už žemėlapio, nustatykite sluoksnių tvarką į skaičių, didesnį nei plytelių schema.

Žinoma, net jei šiuo metu perkelsite žaidimą, slysite per sieną ir vaikščiosite.

"MapChip" paspaudimų aptikimo nustatymai

Iš čia mes nustatysime, ar įvesti kiekvieno tipo žemėlapio lusto sprendimą. Pirmiausia atidarykite aplanką "MapChipPalette", kurį sukūrėte kurdami paletę.

Viduje paletėje yra žemėlapio patarimas, todėl pirmiausia pasirinkite žemėlapio patarimą, kuriuo galėsite vaikščioti.

Inspektoriuje nustatykite Collider Type reikšmę į Nėra. Vėliau prie "Tilemap" pridėsite susidūrimo aptikimo nustatymą, tačiau nustatę jį į "Nėra" neleisite, kad šis žemėlapis nesusidurtų.

Kitas akmeninis žemėlapio patarimas nustatytas į "Tinklelis". Kadangi šį kartą tai nėra skaidrus žemėlapio patarimas, su "sprite" nėra jokių problemų, tačiau jei nustatysite jį į "sprite", jis nebus vertinamas paspaudus skaidrią vaizdo dalį.

Tai viskas, ko reikia "MapTip". Tai lengva, nes šį kartą jų yra tik du, tačiau jei turite daug žemėlapio lustų, turite nustatyti tiek daug.

Susidūrimo aptikimo nustatymai

Iš čia jis yra beveik toks pat kaip "Įdiegti paspaudimų aptikimą naudojant plytelių žemėlapį" turinį.

Pirmiausia atlikite reikiamus simbolių susidūrimo aptikimo nustatymus. Kaip komponentą pridėkite "Physics 2D -> Circle Collider 2D". Šį kartą "sprite" yra apvalus, todėl aš padariau jį apskritimu, bet prašome pasirinkti dėžutę arba kapsulę pagal formą.

Taip pat pridėsime "Physics 2D -> Rigidbody 2D".

Nustatykite gravitacijos skalę į 0, kad gravitacija nenukristų žemyn. Taip pat patikrinkite, ar Z nėra "Pataisyti sukimąsi", kad sprite nesisuktų.

Jei naudojate "Tilemap", pridėkite "Tilemap" – "> Tilemap Collider 2D" komponentą.

Matosi, kad aplink akmeninį žemėlapio galiuką vaizde buvo pridėta žalia linija. Tai reiškia, kad smūgių aptikimas nustatomas tik akmenims. Matote, kad aukščiau esančioje paletėje atsispindi žemėlapio patarimo susidūrimo tipo nustatymas.

Pabandykite paleisti žaidimą ir eiti link sienos. Manau, galite įsitikinti, kad personažas tinkamai sustoja priešais sieną. Matote, kad jį galima lengvai įgyvendinti nerašant jokių programų, susijusių su paspaudimų aptikimu.

"MapChip" paspaudimų aptikimo derinimas

Kaip minėta toliau pateiktuose patarimuose, kai iš tikrųjų jį perkeliate, sienos smūgio aptikimo elgesys yra šiek tiek keistas. Priežastis ir sprendimas aprašyti toliau pateiktuose patarimuose.

Tačiau sujungus žemėlapio lusto pataikymo aptikimo dalį, keistas elgesys bus ištaisytas ir tuo pačiu metu sumažės apdorojimo apkrova, todėl padarykime tai mažiausiai.

Pirmiausia pažymėkite "Naudoti kompozite" "Tilemap Collider 2D".

Dalyje Įtraukti komponentą pasirinkite Fizika 2D – > Composite Collider 2D.

Taip pat bus pridėtas "Rigidbody 2D", todėl "Body Type" padarykite į "Static".

Tada, manau, galite patvirtinti, kad akmens smūgis nėra skirtas kiekvienam žemėlapio lustui ir yra sujungtas.

Dabar paleiskite žaidimą ir įsitikinkite, kad jis veikia tinkamai.