Einheitliche Arbeit mit Fertighäusern

Prefabs ​​sind spezielle Assets, die es Entwicklern ermöglichen, GameObjects zusammen mit ihren Komponenten und anderen Daten in konfigurierbaren Vorlagen zu speichern, die später zwischen den Szenen und anderen Projekten wiederverwendet oder über ein Skript instanziiert werden können, ohne sie erneut konfigurieren zu müssen.

Fälle, in denen Fertighäuser nützlich sind:

  • Umweltgüter (Bäume, Büsche, Felsen usw.)
  • NPCs ​​(Nicht-Spieler-Charaktere)
  • Projektile
  • Spielerinstanzen
  • Alle Objekte, die im Spiel wiederverwendet werden müssen

Beispielanwendung

Beim direkten Ziehen und Ablegen von Modellen in die Szene treten häufig Probleme auf, z. B.:

  • Fehlende Texturen
  • Falscher Maßstab
  • Falsche Drehung

Baummodell mit Standardmaterial

Die oben genannten Probleme können in der Szene leicht behoben werden (Zuweisung der richtigen Materialien, Änderung der Skalierung/Rotation usw.):

Baummodell mit korrektem Material

Wenn Sie jedoch vorhaben, das Modell wiederholt und/oder in verschiedenen Szenen zu verwenden, wird die Wiederholung der oben genannten Schritte schnell zu einer mühsamen Aufgabe, sodass wir das Modell stattdessen in einem Fertighaus speichern können.

So erstellen Sie ein Fertighaus

  • Um ein Fertighaus in Unity zu erstellen, ziehen Sie das Objekt einfach per Drag & Drop aus der Szenenansicht in die Projektansicht.

Unity 3D Erstellen Sie ein Fertighaus

  • Nachdem das Prefab erstellt wurde, kann es in jede Szene eingefügt werden, wodurch eine exakte Kopie erstellt wird:

Unity Prefab-Projektansicht

Bearbeiten von Fertighäusern

Das Bearbeiten vorhandener Prefabs erfolgt auf zwei Arten: durch Ändern im Prefab-Editor oder durch Ändern in der Szene.

Ändern im Prefab-Editor

  • Wählen Sie das Fertighaus in der Projektansicht aus und klicken Sie dann in der Inspektoransicht auf "Open Prefab"

  • Das Prefab wird im Editor geöffnet, wo Sie es ändern können.

  • Wenn Sie mit der Änderung fertig sind, klicken Sie in der Hierarchieansicht auf den Zurückpfeil, um die Bearbeitung zu beenden und die Änderungen zu speichern.

Unity 3D Prefab-Änderungen speichern (Methode 1)

Ändern in der Szene

  • Legen Sie das Fertighaus in der Szenenansicht ab und bearbeiten Sie es dort.

  • In meinem Fall habe ich der Hierarchie ein weiteres Objekt hinzugefügt (beachten Sie das (+)-Symbol neben dem Symbol).
  • Beim Ändern von Fertighäusern in der Szene werden die Änderungen nicht automatisch gespeichert. Stattdessen müssen Sie das Stammobjekt des Fertighauses manuell auswählen und in der Inspektoransicht auf "Overrides" und dann auf "Apply All" klicken, um die Änderungen zu speichern, oder auf "Revert All" um die Änderungen rückgängig zu machen.

  • Einige Aktionen werden beim Bearbeiten von Prefab direkt in der Szene nicht unterstützt. Wenn Sie beispielsweise die Hierarchie neu strukturieren müssen, wird Ihnen die Meldung "Cannot restructure Prefab instance" und die Optionen "Open Prefab" oder "Cancel" angezeigt.

Um die Prefab-Instanz neu zu strukturieren, klicken Sie entweder auf 'Open Prefab' oder klicken Sie mit der rechten Maustaste auf das Prefab in der Hierarchieansicht und klicken Sie dann auf Prefab -> Unpack oder Prefab -> Vollständig entpacken.

Durch das Entpacken von Prefab wird die Verknüpfung mit dem Haupt-Prefab entfernt, sodass es vollständig in der Szene bearbeitet werden kann.

Um das entpackte Prefab wieder zu speichern, wählen Sie den Ordner aus, in dem sich das ursprüngliche Prefab befindet, und ziehen Sie dann das geänderte Objekt per Drag & Drop aus der Hierarchieansicht in dieses Prefab.

Unity 3D Prefab-Änderungen speichern (Methode 2)

Wenn die Änderungen zu drastisch sind, wird Ihnen manchmal eine Bestätigungsmeldung angezeigt.

Stellen Sie sicher, dass Sie noch einmal überprüfen, ob Sie das richtige Prefab ändern, und klicken Sie dann auf "Replace Anyway", um die Aktion abzuschließen, oder auf „Nicht ersetzen“, um die Aktion abzubrechen.

Unity 3D-Bestätigungsmeldung zum Ersetzen von Fertighäusern

Das neue Fertigteil ist nun gespeichert und einsatzbereit.