Vorstellung neuer Prefab-Workflows

MADS NYHOLM / UNITY TECHNOLOGIESStaff Software Engineer
Jun 20, 2018|6 Min.
Vorstellung neuer Prefab-Workflows
Diese Website wurde aus praktischen Gründen für Sie maschinell übersetzt. Die Richtigkeit und Zuverlässigkeit des übersetzten Inhalts kann von uns nicht gewährleistet werden. Sollten Sie Zweifel an der Richtigkeit des übersetzten Inhalts haben, schauen Sie sich bitte die offizielle englische Version der Website an.

Eine der am häufigsten gewünschten Ergänzungen zu Unity ist die Möglichkeit, Prefabs zu verschachteln. Aber wir wissen, dass viele von Ihnen viel mehr Änderungen an den Prefab-Workflows benötigen. Deshalb verbessern wir das gesamte System mit Fokus auf Wiederverwendbarkeit, Kontrolle und Sicherheit. Dies ist der erste einer Reihe von Blog-Einträgen, in denen die bevorstehenden Änderungen erläutert werden. Falls Sie dies nicht bereits während der gestrigen Unity Berlin Keynote getan haben, erhalten Sie hier die Vorschau Unity Build mit dem neuen Prefab-System.

Beginnen wir damit, die Grundlagen dessen, was Prefabs in Unity sind, neu zusammenzufassen. Grundsätzlich ist ein Prefab-Asset wie eine Vorlage für ein GameObject und seine Untergeordneten. Sie können Instanzen eines Prefab-Assets verwenden, um viele Kopien eines GameObjects in Ihren Szenen zu erstellen. Wenn das Prefab-Asset geändert wird, werden alle Prefab-Instanzen automatisch entsprechend aktualisiert.

Wir haben mit einer Vielzahl von Indie- und AAA-Studios gesprochen, um uns eingehend damit auseinanderzusetzen, wie Sie derzeit alle mit Prefabs arbeiten. Ein Problem, das wir festgestellt haben, war, dass Sie ein Prefab-Asset beim Bearbeiten in eine offene Szene in der Hierarchie ziehen mussten, um es zu bearbeiten, die Änderungen anzuwenden und es dann wieder zu löschen. Ein weiteres großes Problem war die Schaltfläche Anwenden für Prefab-Instanzen im Inspector. Mit dieser Schaltfläche können Sie versehentlich Änderungen auf das Prefab-Asset anwenden, über die Sie sich keinen guten Überblick verschaffen konnten.

Um diese Probleme zu lösen, haben wir eine Reihe neuer Funktionen eingeführt. Wir haben ein abwärtskompatibles Prefab-Backend implementiert, das jetzt Verschachtelung und Vererbung unterstützt. Wir haben die Visualisierung von Eigenschafts- und Objektüberschreibungen für Prefab-Instanzen verbessert und die Möglichkeit hinzugefügt, Überschreibungen auf mehreren Granularitätsebenen anzuwenden: pro Eigenschaft, pro Komponente/GameObject oder wie zuvor die gesamte Prefab-Instanz. Zuletzt haben wir den Prefab-Modus hinzugefügt, um ein Prefab-Asset isoliert bearbeiten zu können.

Prefab-Modus

Der Prefab-Modus stellt eine grundlegende Veränderung bei der Arbeit mit Prefabs dar. So können Sie entscheiden, ob Sie Änderungen an einer Prefab-Instanz oder direkt an einem Prefab-Asset vornehmen möchten.

Der Prefab-Modus bietet Ihnen eine kontrolliertere Prefab-Asset-Bearbeitungssitzung, da Sie alle Änderungen am Prefab-Asset durchführen können, einschließlich struktureller Änderungen, ohne Dialoge zu erhalten, in denen Sie aufgefordert werden, die Verbindung zum Prefab zu unterbrechen. Im Prefab-Modus müssen Sie keine vorübergehenden Änderungen mehr an einer Prefab-Instanz vornehmen, um diese Änderungen später nur noch auf das Asset anzuwenden (mit dem möglichen Nebeneffekt, dass andere vorherige Überschreibungen angewendet werden, die als Überschreibungen beibehalten werden sollten). Wir empfehlen Ihnen daher, den Prefab-Modus für Prefab-Asset-Änderungen zu verwenden und nur bei Bedarf Überschreibungen für Prefab-Instanzen vorzunehmen. Beachten Sie, dass wir auch den Apply-Workflow erheblich verbessert haben. Weitere Informationen zu diesem Workflow in einem kommenden Blog-Eintrag!

Der Prefab-Modus übernimmt die Hierarchie- und Szenenansicht, um das Prefab-Asset isoliert anzuzeigen. Diesen Modus erkennen Sie an den neuen Headern in der Hierarchie- und Szenenansicht. Beachten Sie auch, dass die Hintergrundfarbe des Prefab-Modus in den Einstellungen angepasst werden kann.

Das Prefab-Asset in der Hierarchie- und Szenenansicht

Sie können den Prefab-Modus aufrufen, indem Sie eine der folgenden Aktionen ausführen:

  • Doppelklicken Sie auf das Prefab im Projektfenster.
  • Klicken Sie auf die neue Pfeilschaltfläche im Hierarchiefenster neben dem Root GameObject der Prefab-Instanz.
  • Klicken Sie auf die Schaltfläche Öffnen im Inspector für das Root GameObject des Prefab-Assets oder der Prefab-Instanz.
Arbeiten mit Prefab-Assets

Um Prefab-Verschachtelung zu ermöglichen, mussten wir technische Änderungen am Prefab-Backend vornehmen. Prefabs sind also technisch gesehen jetzt importierte Assets. Das bedeutet, dass Sie Prefab GameObjects nicht mehr im Projektfenster bearbeiten können. Im Vergleich zum alten Bearbeitungsworkflow direkt im Projektfenster können Sie im Prefab-Modus Objekte in beliebiger Tiefe bearbeiten und sehen, was Sie in der Szenenansicht tun.

Arbeit mit Prefab-Instanzen

Eine weitere Folge der Bereitstellung von Prefab-Verschachtelung ist, dass Sie eine Prefab-Instanz nicht mehr trennen können, um strukturelle Änderungen an dieser Instanz vorzunehmen. Dazu gehören das Löschen von GameObjects, das erneute Parenting von GameObjects oder das Ersetzen einer Transform durch eine RectTransform und umgekehrt. All das können Sie jetzt im Prefab-Modus tun. Alternativ können Sie jetzt eine Prefab-Instanz entpacken, wenn Sie ihre Verknüpfung zu ihrem Prefab-Asset vollständig entfernen und so die resultierenden einfachen GameObjects nach Belieben umstrukturieren möchten.

Prefab-Stufe

Wir haben den Begriff „Bühne“ im Editor als Konzept für eine Reihe von GameObjects eingeführt, die von anderen GameObjects isoliert sind. Wenn Sie sich im Prefab-Modus befinden, stellen die Breadcrumbs oben in der Szenenansicht jeweils eine andere Bühne dar. Jede Stufe ist wie eine separate „Welt“. Standardmäßig haben wir die Hauptbühne, die die Bühne ist, in der sich alle Ihre Szenen befinden (die Szenen, die Sie geladen haben und die Sie in der Hierarchie sehen können). Wenn Sie ein Prefab im Prefab-Modus öffnen, erstellen wir eine Prefab-Stufe für den Inhalt des Prefab. Wir entladen die Haupt-Stage-GameObjects nicht, wenn eine Prefab-Stage geöffnet wird, und das bedeutet, dass Sie sie weiterhin in der Spieleansicht sehen können.

Die Szenenansicht und Hierarchie zeigen immer die aktuelle Stufe an, die der obersten Brotkrume entspricht. Um zur Hauptbühne mit Ihren Szenen zurückzukehren, klicken Sie entweder auf die Schaltfläche „Szenen“ in den Breadcrumbs der Szenenansicht oder auf die Schaltfläche Zurückpfeil in der Hierarchie.

Sehen Sie sich das folgende Video an, um die neuen Workflows in Aktion zu sehen:

Um die neuen Prefab-Funktionen auszuprobieren, laden Sie den Vorschau-Build von unserer Prefab-Seite herunter. Weitere Informationen, Fragen und Feedback finden Sie auch in unserem dedizierten Forum für verbesserte Prefabs.

Bleiben Sie auf dem Laufenden mit weiteren detaillierten Informationen zu anderen Teilen der verbesserten Prefab-Workflows.

Verbesserte Prefabs auf der Unite Berlin: Live heute

Wenn Sie die verbesserten Prefab-Workflows in Aktion erleben möchten, empfehlen wir Ihnen dringend, den Live-Stream von der Unite Berlin noch heute auf YouTube oder Twitch zu sehen. Ab 17:00 Uhr Berliner Zeit können Sie sich den Verbesserten Prefab-Workflow mit Ciro Continisio ansehen. Danach helfen Ihnen Rune Skovbo Johansen und Steen Lund in ihrem Technical Deep Dive into the New Prefab System (18 Uhr) dabei, die Vor- und Nachteile unserer Implementierungsentscheidungen besser zu verstehen. Wir werden die Vorträge später bearbeiten und innerhalb eines Monats nach der Konferenz auf unserem YouTube-Kanal hochladen.