logo

Esivalmisteiden ja instantoinnin ymmärtäminen

Hahmojen tai esineiden luominen ja tuhoaminen on hyvin yleistä kaikissa peleissä. Instantiointi tarkoittaa kohteen tuomista olemassaoloon. Pelissä esiintyy tai syntyy esineitä, viholliset kuolevat, GUI-elementit katoavat ja kohtauksia ladataan koko ajan pelissä.

Esivalmisteet ovat erittäin hyödyllisiä, kun haluat luoda monimutkaisia ​​GameObjects-objekteja tai GameObject-kokoelman ajon aikana. Verrattuna GameObjectien luomiseen tyhjästä koodilla, esivalmisteiden luominen koodilla on parempi, ja sillä on monia etuja.

Ymmärrämme, mitä esivalmisteet ovat; koska esivalmisteita pidetään tärkeinä, jotta voidaan ymmärtää, kuinka instantiaatio toimii Unityssa.

Elementit ovat kuin piirustuksia GameObjectista. Voimme siis sanoa, että Prefabs ovat kopio GameObjectista, joka voidaan monistaa ja laittaa kohtaukseen, vaikka sitä ei olisi ollutkaan kohtausta tehtäessä; toisin sanoen esivalmisteita voidaan käyttää GameObjectien luomiseen dynaamisesti.

Luodaan elementti; tätä varten sinun täytyy vetää haluttu GameObject kohtaushierarkiastasi projektiin Assets.

Esivalmisteiden ja instantoinnin ymmärtäminen

Nyt GameObjectin luomiseksi kutsumme komentosarjassamme Instantiate()-menetelmää. Tämä menetelmä on käytettävissä MonoBehaviourissa, ottaa GameObjectin parametrina, joten se tietää, mikä GameObject luodaan tai kopioidaan. Sillä on myös erilaisia ​​ohituksia äskettäin instantoidun objektin muunnoksen muuttamiseen sekä vanhemmuuteen.

Luo nyt uusi komentosarja nimeltä Instantiator.cs ja kopioi siihen seuraava koodi.

 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Instantiator : MonoBehaviour { public GameObject Diamond; // Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.Space)) { Instantiate(Diamond); } } } 

Yllä olevassa ohjelmassa käytimme Input-luokan GetKeyDown-menetelmää, jolla tarkistettiin, painoiko soitin tiettyä painiketta viimeisen ruudun aikana. GetKeyDown()-menetelmä palauttaa arvon tosi, jos KeyCode-luettelossa (jolla luetellaan kaikki mahdolliset vakionäppäimistön näppäimet) määritettyä näppäintä painetaan kyseisessä kehyksessä.

Tallenna käsikirjoitus. Ja nyt, luo tyhjä GameObject napsauttamalla kohtausta hiiren kakkospainikkeella Hierarkia-välilehdellä.

Esivalmisteiden ja instantoinnin ymmärtäminen

Liitä tämä komentosarjatiedosto (Instantiator.cs) äskettäin luotuun GameObjectin komponenttiin Tarkastaja-välilehdeltä.

Vedä nyt Diamond-muuttujassa luomamme esivalmistetta.

Esivalmisteiden ja instantoinnin ymmärtäminen

Kun käytät peliä nyt, välilyöntinäppäimen painaminen luo uuden timanttiobjektin, joka on identtinen sen kanssa, jota käytimme tehdasvalmisteen luomiseen. Voit nähdä, että jokainen timantti on luotu objektihierarkiassa. Syy, miksi et näe niitä pelissä, on se, että ne kaikki luodaan toistaiseksi täsmälleen päällekkäin. Mutta voit tarkistaa sen Hierarkia-välilehdeltä. Joka kerta kun painat välilyöntiä, se näkyy välilehdellä timanttina (kloonina).

Esivalmisteiden ja instantoinnin ymmärtäminen