Találatészlelés megvalósítása minden MapChip-típushoz

Oldal frissítve :
Oldal létrehozásának dátuma :

Ellenőrzési környezet

Windows
  • Windows 11 esetén
Unity-szerkesztő
  • 2021.3.3f1
Bemeneti rendszercsomag
  • 1.3.0

A tipp előfeltételei

A következő beállításokat előre elvégeztük a tipp leírásának előfeltételeként.

Mik ennek a tippnek az előfeltételei?

Térképanyagok kölcsönzése – ismertető

A következő webhelyekről kölcsönzött anyagokat dolgozzuk fel.

Először

Ezúttal a MapChipek egy TileMap-be kerülnek, és eldöntik, hogy az elhelyezett MapTip típusának megfelelően végrehajtják-e a találatok meghatározását.

Mivel ez a tipp nagyjából megegyezik egy másik tippel: "Találatészlelés megvalósítása csempetérképekkel", Kérjük, olvassa el ott a részletes magyarázatot. Itt csak az eljárást magyarázzuk el ugyanarra a tartalomra, és csak a különbségeket adjuk hozzá.

Gyalogos karakterek megvalósítása

Először készítsen elő egy sprite-képet, amelyet a lejátszó vezérel a találatészlelési művelet végrehajtásához, és adja hozzá a projekthez. Ezúttal a térképcsúcs mérete 32 pixel, így a képet azonos méretűre teszem.

Ezúttal kihagyom a gyalogos animációt, mert az eljárás hosszú lesz, ha végrehajtják. Ha meg szeretné valósítani, kérjük, olvassa el az alábbi tippeket.

Válassza ki a projekthez hozzáadott képet. Mivel az egységet a térkép chiphez szeretnénk igazítani, állítsa az "Egységenkénti pixelek száma" értéket "32" -re.

A konfigurálás után kattintson az alábbi "Alkalmaz" gombra.

A kép beállítása után húzza a képet a nézetbe, és adja hozzá az objektumot.

Állítsa be a karakter mozgási folyamatát. Adja hozzá a szkriptet, és hagyja meg a nevét Player .

A szkript így néz ki: Ez egy egyszerű mozgási folyamat, amely a sprite-ot a billentyűzettel mozgatja.

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);
    }
  }
}

A létrehozott parancsfájl a karakterobjektumhoz lesz csatolva.

Futtassa a játékot, és ellenőrizze, hogy a karakter mozog-e a billentyűzettel.

Térképtippek előkészítése

Készítsen elő egy maptip képet, és adja hozzá a projekthez. A térképchipek számának növekedésével a beállítás problémássá válik, ezért ezúttal csak két négyzetet készítettünk, egyet lehet járni, egyet pedig nem lehet járni.

Válassza ki a projekthez hozzáadott képeket, és konfigurálja a MapChips beállításait. További információért tekintse meg az alábbi tippeket:

A konfigurálás után kattintson az Alkalmaz gombra, majd a Sprite Editor gombra.

Ossza el 32 képponttal.

Válassza a Mozaikpaletta lapot paletta létrehozásához. Ha nincsenek lapok, megjelenítheti azokat a menüből a "Window > 2D -> Tile Palette" segítségével. A paletta neve bármi lehet, de itt "MapChipPalette".

Mivel egy mappába mentjük, hozzon létre egy új "MapChipPalette" mappát a Scene mappában, és adja meg.

Egy MapChipPalette mappa lett hozzáadva a projekthez.

Ezután hozzáadja a MapTips elemet a palettához. Húzza az osztott leképezési tipp képét a palettára.

A térképtippek hozzá lettek adva a palettához.

Térkép létrehozása

Hagyja félre a találatészlelési beállításokat, és először hozza létre a térképet. A lekérésészlelést később is beállíthatja. Először adjon hozzá egy csempetérképet a hierarchiához.

A hozzáadás után válassza a Tilemap lehetőséget. A nézet egy rácsot jelenít meg.

Először állítson be egy térképchipet, amely nem válik falra a nézetben.

Egyelőre mindenütt elhelyeztem.

Ezután helyezze el a kőtérképcsúcsot, amely falként szolgál.

Ezúttal nem volt probléma, de ha a karaktered a térkép mögött lesz, állítsd a rétegsorrendet a Tilemapnél nagyobb számra.

Természetesen, még akkor is, ha ezen a ponton mozgatja a játékot, átcsúszik a falon és sétál.

MapChip találatészlelési beállítások

Innen beállítjuk, hogy az egyes térképchiptípusokhoz beírjunk-e találati ítéletet. Először nyissa meg a paletta létrehozásakor létrehozott "MapChipPalette" mappát.

A belső palettán van egy maptip készlet, ezért először válasszon ki egy térképtippet, amelyen sétálhat.

A Vizsgálóban állítsa az Ütköztető típusa értéket Nincs értékre. Később hozzáad egy ütközésészlelési beállítást a Tilemaphez, de ha "Nincs" értékre állítja, megakadályozza a térképchip ütközését.

A másik kőtérképtipp beállítása "Rács". Mivel ezúttal nem átlátszó térképtipp, nincs probléma a "sprite" -val, de ha "sprite" -ra állítja, akkor nem a kép átlátszó részének megütésével lesz megítélve.

Ez minden, ami a MapTip-hez tartozik. Könnyű, mert ezúttal csak kettő van belőlük, de ha sok térképzsetonod van, akkor ennyit kell beállítanod.

Ütközésérzékelési beállítások

Innentől kezdve szinte megegyezik a "Találatészlelés megvalósítása csempetérképpel" tartalommal.

Először végezze el a karakterütközés-észleléshez szükséges beállításokat. Adja hozzá a "Physics 2D -> Circle Collider 2D" összetevőt. Ezúttal a sprite kerek, ezért kört készítettem belőle, de kérjük, válassza ki a dobozt vagy a kapszulát az alaknak megfelelően.

Hozzáadjuk a "Fizika 2D -> merevtest 2D" -t is.

Állítsa a gravitációs skálát 0-ra, hogy megakadályozza a gravitáció leesését. Ellenőrizze a Z-t a "Fix forgatás" -nál is, hogy megakadályozza a sprite forgását.

A Tilemap esetében adja hozzá a Tilemap -> Tilemap Collider 2D összetevőt.

Láthatja, hogy egy zöld vonal lett hozzáadva a kőtérképcsúcs körül a nézetben. Ez azt jelenti, hogy a találatészlelés csak kövekre van beállítva. Láthatja, hogy a fenti palettán lévő térképcsúcs ütköztető típusának beállítása tükröződik.

Próbálja meg futtatni a játékot, és sétáljon a fal felé. Azt hiszem, meggyőződhet arról, hogy a karakter megfelelően megáll a fal előtt. Láthatja, hogy könnyen megvalósítható anélkül, hogy bármilyen találatészleléssel kapcsolatos programot írna.

A MapChip találatészlelés kombinálása

Amint azt az alábbi tippekben említettük, amikor ténylegesen mozgatja, a fali ütések észlelésének viselkedése kissé furcsa. Az okot és a megkerülő megoldást az alábbi tippek ismertetik.

A térképchip találatészlelési részének kombinálásával azonban a furcsa viselkedés kijavításra kerül, és a feldolgozási terhelés egyidejűleg csökken, ezért tegyük meg minimumon.

Először jelölje be a "Használat kompozitban" lehetőséget a Tilemap Collider 2D-ben.

Az Összetevő hozzáadása alatt válassza a Physics 2D -> Composite Collider 2D lehetőséget.

A "Rigidbody 2D" is hozzáadásra kerül, ezért a "Body Type" helyett "Static".

Akkor azt hiszem, megerősítheti, hogy a kő találati ítélete nem minden térképchipre vonatkozik, hanem kombinálva.

Most futtassa a játékot, és ellenőrizze, hogy megfelelően működik-e.