logo

Forståelse af præfabrikater og instansiering

At instansiere og ødelægge karakterer eller objekter er meget almindeligt i ethvert spil. Instantiering betyder at bringe objektet til eksistens. Objekter dukker op eller afføder eller genererer i et spil, fjender dør, GUI-elementer forsvinder, og scener indlæses hele tiden i spillet.

Prefabs er meget nyttige, når du vil instantiere komplicerede GameObjects eller samling af GameObjects under kørsel. Sammenlignet med at skabe GameObjects fra bunden ved hjælp af kode, er det bedre at instansiere præfabrikater ved hjælp af kode, og det har mange fordele.

Lad os forstå, hvad præfabrikater er; da præfabrikater anses for vigtige for at forstå, hvordan instansiering fungerer i Unity.

Præfabrikerede er som tegninger af et GameObject. Så vi kan sige, Prefabs er en kopi af et GameObject, der kan duplikeres og indsættes i en scene, selvom det ikke eksisterede, da scenen blev lavet; med andre ord kan præfabrikater bruges til at generere GameObjects dynamisk.

Lad os skabe et præfabrikat; til dette skal du trække det ønskede GameObject fra dit scenehierarki ind i projektet Assets.

Forståelse af præfabrikater og instansiering

Nu, for at instantiere et GameObject, kalder vi Instantiate()-metoden i vores script. Denne metode er tilgængelig i MonoBehaviour, tager et GameObject ind som en parameter, så den ved hvilket GameObject der skal oprettes eller duplikeres. Det har også forskellige tilsidesættelser til ændring af det nyligt instansierede objekts transformation, såvel som forældreskab.

Opret nu et nyt script kaldet Instantiator.cs og kopier følgende kode i det.

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

I ovenstående program brugte vi GetKeyDown-metoden i Input-klassen for at kontrollere, om afspilleren trykkede på en bestemt knap i det sidste billede. GetKeyDown()-metoden returnerer sand, hvis nøglen angivet af KeyCode-enum (som bruges til at liste alle mulige taster på et standardtastatur) trykkes ned i den ramme.

Gem scriptet. Og opret nu et tomt GameObject ved at højreklikke på scenen fra fanen Hierarki.

Forståelse af præfabrikater og instansiering

Vedhæft denne scriptfil (Instantiator.cs) til den nyoprettede GameObject-komponent fra fanen Inspector.

Træk nu den præfabrikat, vi har oprettet, i Diamond-variablen.

Forståelse af præfabrikater og instansiering

Når du kører spillet nu, vil et tryk på mellemrumstasten skabe et nyt diamantobjekt, der er identisk med det, vi brugte til at lave præfabrikatet. Du kan se, at hver diamant er oprettet i objekthierarkiet. Grunden til, at du ikke kan se dem dukke op i spillet, er, at de foreløbig alle bliver skabt præcis den ene over den anden. Men du kan bekræfte det fra fanen Hierarki. Hver gang du trykker på mellemrumstasten, vises den i fanen som en diamant (klon).

Forståelse af præfabrikater og instansiering