16. November 2021

Prefabs

Ein Prefab ist ein Asset, das eine serialisierte Entität enthält und in Ihrer Szene instanziiert werden kann. Das ist nützlich, wenn Sie viele Instanzen desselben Entitätstyps benötigen, etwa Säulen, Stühle oder UI-Komponenten. Man könnte die Entitäten einfach duplizieren, doch Prefabs sind effizienter, da Änderungen am Prefab automatisch an alle seine Instanzen in den Szenen weitergegeben werden.

Evergine führt eine frühe Version unseres neuen Prefab-Systems mit einem Grundstock an neuen Features ein, während wir daran arbeiten, in naher Zukunft weitere interessante Funktionen hinzuzufügen. In dieser ersten Version unterstützen wir das Erstellen und Instanziieren von Prefabs, und für unsere nächste Version planen wir einen vollständigen Editor.

Prefabs in Evergine Studio erstellen

Derzeit erstellen Sie ein Prefab, indem Sie eine Entität auswählen, mit der rechten Maustaste darauf klicken und im Kontextmenü den Eintrag „Create prefab“ wählen.

Dadurch wird im aktuellen Asset-Ordner ein Prefab-Asset mit dem Namen der Entität erstellt.

Prefabs in Evergine Studio instanziieren

Um ein Prefab in Ihrer Szene zu instanziieren, ziehen Sie einfach ein Prefab-Asset in den Szenen-Viewer, und es wird eine neue Prefab-Instanz erstellt.

Nach dem Instanziieren kann die Prefab Instance in Ihrer Szene geändert und verschoben werden, und die Szene verfolgt diese Änderungen. In diesem Beispiel haben wir einen einfachen Mini-Wald erstellt.

Prefabs per Code instanziieren

Auch das Instanziieren eines Prefabs per Code ist ganz einfach. Wir müssen nur die Methode Instantiate des Prefab-Objekts aufrufen.

var treePrefab = this.assets.Load<Prefab>(EvergineContent.Prefabs.tree);
var treeInstance = treePrefab.Instantiate();

this.Managers.EntityManager.Add(treeInstance);

Antonio avila
Autor
Antonio Ávila
Plain Concepts Research