Izvajanje zaznavanja zadetkov za vsako vrsto MapChip

Stran posodobljena :
Datum ustvarjanja strani :

Okolje za preverjanje

Windows
  • Windows 11
Urejevalnik Unity
  • 2021.3.3F1
Paket vhodnega sistema
  • 1.3.0

Predpogoji za ta nasvet

Naslednje nastavitve so bile vnaprej narejene kot premisa za opis tega nasveta.

Kakšni so predpogoji za ta nasvet?

O izposoji gradiva zemljevidov

Izposojene obdelujemo na naslednjih spletnih mestih.

Sprva

Tokrat so MapChips postavljeni v en TileMap in odločeno je, ali naj se izvede določanje zadetkov glede na vrsto postavljenega MapTip.

Ker je ta nasvet v veliki meri enak drugemu Nasvet "Izvedite zaznavanje zadetkov s ploščicami", Za podrobno razlago si oglejte tam. Tu je razložen samo postopek za isto vsebino in dodane so le razlike.

Izvajanje znakov za hojo

Najprej pripravite sliko, ki jo bo predvajalnik nadzoroval, da izvede operacijo zaznavanja zadetkov in jo dodate v svoj projekt. Tokrat je velikost zemljevida 32 slikovnih pik, zato bom sliko naredil enako velikost.

Tokrat bom izpustil animacijo hoje, ker bo postopek dolg, če bo izveden. Če ga želite izvesti, si oglejte naslednje nasvete.

Izberite sliko, ki ste jo dodali projektu. Ker želimo enoto povezati s čipom zemljevida, nastavite "Število slikovnih pik na enoto" na "32".

Ko je konfiguriran, spodaj kliknite gumb »Uporabi«.

Ko je slika nastavljena, jo spustite v pogled in dodajte predmet.

Nastavite postopek premikanja znaka. Dodajte skript in ga pustite poimenovati Player .

Scenarij izgleda takole: To je preprost postopek gibanja, ki premika duhovnika s tipkovnico.

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

Skript, ki ga ustvarite, se priloži predmetu znaka.

Zaženite igro in preverite, ali se znak premika s tipkovnico.

Priprava MapTips

Pripravite sliko z opisom zemljevida in jo dodajte v projekt. Ker se število kartografskih čipov povečuje, nastavitev postane problematična, zato smo tokrat pripravili le dva kvadrata, enega, ki ga je mogoče prehoditi, in enega, ki ne more hoditi.

Izberite slike, ki ste jih dodali v projekt, in konfigurirajte nastavitve za MapChips. Za več informacij si oglejte naslednje namige:

Ko konfigurirate, kliknite gumb Uporabi in nato gumb Urejevalnik duhovnikov.

Delite z 32 slikovnimi pikami.

Izberite zavihek Paleta ploščic, da ustvarite paleto. Če zavihkov ni, jih lahko prikažete v meniju z "Okno > 2D -> paleto ploščic". Ime palete je lahko karkoli, toda tukaj je "MapChipPalette".

Ker ga bomo shranili v mapo, v mapi Scene ustvarite novo mapo »MapChipPalette« in jo podajte.

V projekt je bila dodana mapa MapChipPalette.

Nato boste paleti dodali MapTips. Povlecite in spustite razdeljeno sliko z namigi zemljevida na paleto.

MapTips so bili dodani paleti.

Ustvarjanje zemljevida

Pustite nastavitve zaznavanja zadetkov ob strani in najprej ustvarite zemljevid. Zaznavanje zadetkov lahko nastavite pozneje. Najprej dodajte zemljevid ploščic v svojo hierarhijo.

Ko je dodana, izberite Tilemap. V pogledu je prikazana mreža.

Najprej nastavite mapchip, ki ne postane stena v pogledu.

Zaenkrat sem ga položil povsod.

Nato postavite kamnit zemljevid, ki bo služil kot stena.

Tokrat ni bilo težav, če pa bo vaš lik za zemljevidom, nastavite vrstni red plasti na številko, ki je večja od Tilemap.

Seveda, tudi če premaknete igro na tej točki, boste zdrsnili skozi steno in hodili.

Nastavitve zaznavanja zadetkov MapChip

Od tu bomo nastavili, ali bomo vnesli sodbo hit za vsako vrsto kartografskega čipa. Najprej odprite mapo »MapChipPalette«, ki ste jo ustvarili, ko ste ustvarili paleto.

V paleti je v paleti nastavljen opis zemljevida, zato najprej izberite opis zemljevida, po katerem lahko hodite.

V razdelku Nadzornik nastavite vrednost Vrsta trkalnika na Brez. Kasneje boste v Tilemap dodali nastavitev zaznavanja trkov, vendar jo nastavite na »Brez«, da preprečite trčenje tega preslikave.

Drugi kamniti zemljevid je nastavljen na "Mreža". Ker tokrat ni pregleden zemljevid tipa, z "sprite" ni težav, če pa ga nastavite na "sprite", ga ne boste sodili s pritiskom na prozorni del slike.

To je vse, kar je za MapTip. To je enostavno, ker sta tokrat samo dva, če pa imate veliko število kartografskih čipov, morate nastaviti toliko.

Nastavitve zaznavanja trkov

Od tu je skoraj enaka vsebini »Izvedite zaznavanje zadetkov s ploščicami«.

Najprej izvedite potrebne nastavitve za zaznavanje trkov znakov. Kot komponento dodajte "Physics 2D -> Circle Collider 2D". Tokrat je duhovnik okrogel, zato sem ga naredil za krog, vendar prosim izberite škatlo ali kapsulo glede na obliko.

Dodali bomo tudi "Physics 2D -> Rigidbody 2D".

Nastavite gravitacijsko skalo na 0, da preprečite padec gravitacije. Prav tako preverite Z za "Popravi vrtenje", da preprečite vrtenje duhovnika.

Za Tilemap dodajte 2D-komponento Tilemap -> Tilemap Collider.

Vidite lahko, da je bila okoli kamnitega zemljevida v pogledu dodana zelena črta. To pomeni, da je zaznavanje zadetkov nastavljeno samo za kamne. Vidite lahko, da se odraža nastavitev vrste trkalnika na zemljevidu v zgornji paleti.

Poskusite zagnati igro in hoditi proti steni. Mislim, da se lahko prepričate, da se lik pravilno ustavi pred steno. Vidite lahko, da ga je mogoče enostavno izvesti brez pisanja programov, povezanih z odkrivanjem zadetkov.

Združevanje zaznavanja zadetkov MapChip

Kot je omenjeno v spodnjih nasvetih, ko ga dejansko premaknete, je vedenje zaznavanja udarcev na steno nekoliko čudno. Vzrok in rešitev sta opisana v spodnjih nasvetih.

Vendar pa bo z združevanjem dela za zaznavanje zadetkov na čipu zemljevida popravljeno čudno vedenje in hkrati zmanjšana obremenitev obdelave, zato to storimo najmanj.

Najprej označite »Uporabi v kompozitnem« v Tilemap Collider 2D.

Pod možnostjo Dodaj komponento izberite Fizika 2D-> Sestavljeni trkalnik 2D.

Dodan bo tudi "Rigidbody 2D", zato naredite "Body Type" v "Static".

Potem mislim, da lahko potrdite, da udarna sodba kamna ni za vsak kartografski čip in je kombinirana.

Zdaj zaženite igro in se prepričajte, da deluje pravilno.