logo

Pochopení prefabrikátů a vytváření instancí

Instantování a ničení postav nebo předmětů je v každé hře velmi běžné. Instanciování znamená uvedení objektu do existence. Objekty se objevují, spawnují nebo generují ve hře, nepřátelé umírají, prvky GUI mizí a scény se ve hře neustále načítají.

Prefabrikáty jsou velmi užitečné, když chcete vytvořit instanci komplikovaných GameObjects nebo sbírku GameObjects za běhu. Ve srovnání s vytvářením GameObjects od začátku pomocí kódu je vytváření instancí prefabrikátů pomocí kódu lepší a má to mnoho výhod.

Pojďme pochopit, co jsou prefabrikáty; protože prefabrikáty jsou považovány za důležité pro pochopení toho, jak funguje konkretizace v Unity.

Paneláky jsou jako plány GameObject. Můžeme tedy říci, že prefabrikáty jsou kopií objektu GameObject, který lze duplikovat a vložit do scény, i když v době vytváření scény neexistoval; jinými slovy, prefabrikáty lze použít k dynamickému generování objektů GameObjects.

javascript

Vytvořme prefabrikát; k tomu musíte přetáhnout požadovaný GameObject z hierarchie vaší scény do aktiv projektu.

jak generovat náhodné číslo v java
Pochopení prefabrikátů a vytváření instancí

Nyní, abychom vytvořili instanci GameObject, zavoláme v našem skriptu metodu Instantiate(). Tato metoda je dostupná v MonoBehaviour, bere jako parametr GameObject, takže ví, který GameObject vytvořit nebo duplikovat. Má také různé přepisy pro změnu transformace nově vytvořeného objektu a také rodičovství.

Nyní vytvořte nový skript s názvem Instantiator.cs a zkopírujte do něj následující kód.

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

Ve výše uvedeném programu jsme použili metodu GetKeyDown třídy Input ke kontrole, zda hráč během posledního snímku stiskl určité tlačítko. Metoda GetKeyDown() vrátí hodnotu true, pokud je v tomto rámci stisknuta klávesa určená výčtem KeyCode (který se používá k výpisu všech možných kláves na standardní klávesnici).

Uložte skript. A nyní vytvořte prázdný GameObject kliknutím pravým tlačítkem myši na scénu na kartě Hierarchie.

index seznamu
Pochopení prefabrikátů a vytváření instancí

Připojte tento soubor skriptu (Instantiator.cs) k nově vytvořené komponentě GameObject na kartě Inspektor.

Nyní v proměnné Diamond přetáhněte tento prefabrikát, který jsme vytvořili.

Pochopení prefabrikátů a vytváření instancí

Když nyní hru spustíte, stisknutím mezerníku vytvoříte nový diamantový objekt identický s tím, který jsme použili k vytvoření prefabrikátu. Můžete vidět, že každý diamant je vytvořen v hierarchii objektů. Důvod, proč je ve hře nevidíte, je ten, že prozatím jsou všechny vytvářeny přesně jedna přes druhou. Můžete si to ale ověřit na kartě Hierarchie. Pokaždé, když stisknete mezerník, zobrazí se na kartě jako diamant (klon).

Pochopení prefabrikátů a vytváření instancí