Prefabs in Unity – Arbeitsablauf und Erstellung

Gefällt Dir der Artikel? Dann teile ihn doch, um diese Informationen auch anderen zugänglich zu machen!

Seiteninhalt

Eine hilfreiche Funktion für jeden, der die Erschaffung von Objekten automatisieren, verschiedene Varianten kreieren oder auch mehrere GameObjects gleichzeitig verändern möchte. Auf deinem Weg als Unity-Entwickler wirst du diese Funktion in fast jedem deiner Anwendungen nutzen, ob du nun automatisch Räume wie in einem Videospiel oder Buttons für deine Benutzeroberfläche generierst.

Das Beste an Prefabs in Unity ist, dass du sie auch während der Programmierung verwenden kannst, ohne ein einziges aktives GameObject in deiner Szene zu haben. Bedeutet, dass du mit Prefabs dynamisch Elemente in deiner Scene generieren oder löschen kannst.

Prefab in Unity erstellen

Zunächst musst du ein Objekt auswählen, das du zu einem Prefab machen möchtest. Selektiere in der Hierarchie ein GameObject deiner Wahl.

Falls du kein Projektfenster bei dir findest, kannst du auf Window > General > Project klicken, um das Fenster aufzurufen. Wahlweise kannst du die Tastenkombination Strg + 5 drücken.

Unity Projektfenster

Ziehe dein gewünschtes GameObject in den Assets Bereich deines Projektfensters.

Damit wird aus deinem GameObject ein Prefab. In der Hierarchie ist das Icon neben dem Objekt-Namen blau eingefärbt und ein du findest in deinem Projektfenster ein neues Asset des Typen Prefab.

Das neue Prefab kannst du nun jederzeit auf deine Hierarchie ziehen, dadurch erstellst du ein neues GameObject auf Basis des Prefabs.

Prefab erstellen

Prefab Mode

Um deine Prefabs in Unity in einer isolierten Ansicht zu bearbeiten, kannst du den Prefab Mode nutzen. Durch einen Doppelklick auf einen deiner Prefabs kannst du diesen öffnen.

WICHTIG: Jede Änderung wird standardmäßig automatisch gespeichert. Die kannst du umgehen, indem du oben rechts auf “Auto Save” deaktivierst. Vergiss aber nicht, dass du mit dieser Einstellung manuell speichern musst!

In diesem Modus kannst du dein Prefab wie ein normales GameObject bearbeiten. Also das Material, die Position, den Tag, den Layer und alles Weitere. Das ist insbesondere nützlich, wenn du dynamisch, quasi in Echtzeit Level generieren oder Objektgruppen wie große Scenes in Unity verändern möchtest.

Prefab Mode

Überschreiben

Nicht immer ist der Prefab Mode der optimale Weg. Insbesondere dann, wenn du deine restliche Scene als Referenz für das Anpassen deines Prefabs benötigst.

Aus diesem Grund gibt es in Unity die Funktion des Überschreibens. Du kannst ein Prefab-Objekt auch aus deiner Hierarchie heraus bearbeiten und diese Veränderung dann auf alle anderen Objekte übertragen.

Diese Option findest du oben rechts im Inspektor-Fenster (Window > General > Inspector), wähle bei deinem Objekt “Overrides” und dann “Apply All”.

Wenn dir deine Änderungen am Objekt am Ende doch nicht gefallen, kannst du auch auf “Revert All” drücken, um auf den Ursprungszustand deines Prefabs zurückzusetzen.

Prefab Override

Nested Prefabs

Damit ist es möglich Prefabs in Prefabs zu integrieren, das mag zwar seltsam klingen, aber wenn du beispielsweise verschiedene Zaunarten mit unterschiedlichen Dekorationen erstellen möchtest, wird dir das extrem viel Zeit ersparen.

Um Nested Prefabs zu kreieren, gehst du vor wie bei einem normalen Prefab und ziehst dein Objekt, das ein Prefab als Child (Unterobjekt) hat, wieder in dein Projektfenster.

Nested Prefabs

Varianten erstellen

Aus deinen Prefab kannst du auch verschiedene Varianten erstellen. Sie sind besonders nützlich, wenn du mehrere ähnliche Objekte hast, die aber unterschiedlich funktionieren sollen.

Nehmen wir als Beispiel Skelette, die mit unterschiedlichen Waffen kämpfen. Eins mit Schwert, eins mit Bogen und wiederum eines mit einer Axt. Sie sind alle als Basis Skelette, das ist das Original-Prefab, aber die verschiedenen Kampfarten sind Variationen. Damit hast du dann drei unterschiedliche Prefab-Varianten des Skeletts: Schwert, Bogen und Axt.

Um Prefab-Varianten zu erstellen, verwendest du ein schon bestehendes Prefab. Ziehe es von der Hierarchie in den Assets Bereich und dann sollte dich Unity fragen, ob du entweder ein Original oder eine Variante des Prefabs kreieren willst. Du klickst auf “Prefab Variant” und schon ist deine neue Variante erstellt.

Prefab Varianten

Prefab entpacken

Ein Feature, das dir erlaubt, Prefab-Objekte zurück zu Einzelobjekten zu machen, ist das Entpacken. Dabei werden sie vollständig von ihrem Darsein als Prefab losgelöst und gelten wie alle anderen Objekte nur noch für sich selbst.

Stell dir vor, dass du als Dekoration beispielsweise Blumen in deiner Scene verwendest. Du möchtest eine Blume im Speziellen hervorheben, indem du ihr ein einzigartiges Aussehen verpasst. Dann wäre es unnötig, eine eigene Prefab-Variante für dieses einzige Objekt (die neue Blume) zu kreieren, aber für das Entpacken eignet sich eine solche Situation besonders gut.

Um dies zu bewerkstelligen, füge ein Prefab-Objekt zu deiner Hierarchie hinzu. Mit einem Rechtsklick öffnest du dann die erweiterten Optionen für das Objekt und klickst entweder auf “Unpack Prefab” oder “Unpack Prefab Completely”.

  • Unpack Prefab: nur das von dir ausgewählte Prefab entpackt wird
  • Unpack Prefab Completely: das ausgewählte und jedes Prefab in diesem Prefab, also falls es ein Nested-Prefab ist, wird ebenfalls entpackt.

Prefab Entpacken

Scripting mit Prefabs

Prefabs haben gegenüber GameObjects einen großen Vorteil bezüglich der Scripting Funktionalität in Unity.

Beim Scripting mit Objekten in der Hierarchie gibt es das Problem, dass zumindest ein Objekt, das man beispielsweise klonen möchte, vorhanden sein muss, um es einem Skript als Parameter zuzuweisen.

Bei Prefabs ist das nicht nötig, sie können ganz bequem von dem Projektfenster aus einem Skript zugewiesen werden. Damit verhinderst du ineffektive Objekte in deiner Anwendung. Da bei großer Anzahl oder bei komplexen Objekten die Performance sinken kann.

Prefabs in Unity sind eine tolle Sache, aber einzelne GameObjects sind dennoch von Vorteil sein, weil sie deinen Projektordner sauber halten können. Also wäge immer ab, ob du auf die Verwendung eines Prefabs zurückgreifen möchtest.

Prefab Scripting

Hinweis: Du willst in der 3D-Entwicklung durchstarten? Dann teste jetzt nobreakpoints Pro. Dort lernst du in zahlreichen Online-Kursen und Workshops alle nötigen Skills.

Free

Trial

Keine Extra-Kosten.
Unverbindlich testen.

Bereit, deinen Weg in die 3D-Entwicklung zu starten?

Gefällt Dir der Artikel? Dann teile ihn doch, um diese Informationen auch anderen zugänglich zu machen!

Weitere Blogartikel

Bereit, deinen Weg in die 3D-Entwicklung zu starten?

Lerne in Rekordzeit alle nötigen Skills für Game Development, VR und AR – praxisnah und flexibel in deinem Tempo!

Suche

Bereit, deinen Weg in die 3D-Entwicklung zu starten?

Lerne in Rekordzeit alle nötigen Skills für Game Development, VR und AR – praxisnah und flexibel in deinem Tempo!