Erfahren Sie, wie das Addressable Asset System die Verwaltung Ihrer Inhalte sowohl bei der Bearbeitung als auch zur Laufzeit vereinfachen kann, damit die Erstveröffentlichung und Aktualisierung Ihres Spiels reibungsloser und einfacher vonstatten geht. Dieser Artikel basiert auf einem Vortrag von Bill Ramsour aus dem Live-Content-Team, der auf der Unite Copenhagen 2019 gehalten wurde.
Das Addressable Asset System (d. h. Addressables) ist ein Unity-Editor und ein Laufzeit-Asset-Management-System, das die Unterstützung für große Produktionsteams mit komplexen Anforderungen an die Bereitstellung von Live-Inhalten verbessert. Das System verwendet asynchrones Laden, um das Laden von einem beliebigen Ort mit einer beliebigen Sammlung von Abhängigkeiten zu unterstützen. Durch effizienteres Packen von Asset-Bündeln und Verkürzung der Iterationszeit bietet Addressables eine einfache Möglichkeit, Ihr Spiel dynamischer zu gestalten.
Addressables geht auf die Herausforderungen der Entwickler ein, wie z. B. Iterationszeit, Abhängigkeitsmanagement, Speichermanagement und Content-Packing.
Sobald ein Asset (z. B. ein Prefab) als "adressierbar" gekennzeichnet ist, erzeugt es eine Adresse, die von überall aus aufgerufen werden kann. Wo auch immer sich das Asset befindet (lokal oder remote), das System findet es und seine Abhängigkeiten und gibt es dann zurück. Ein Asset ist ein Inhalt, den Sie zur Erstellung Ihres Spiels oder Ihrer App verwenden. Gängige Beispiele für Assets sind Prefabs, Texturen, Materialien, Audioclips und Animationen.
Addressables abstrahiert Asset-Bündel, um die Verwaltung von Inhalten effizienter zu gestalten, und enthält gleichzeitig das Asset und alle ihm zugrunde liegenden Daten.
Im Workflow von Addressables durchläuft die Anfrage zunächst das Katalogsystem. Das System dekodiert die Adresse in einen Standort, der aus den während des Builds generierten Daten über die Art des Assets, seine Abhängigkeiten, ob es sich um ein lokales oder entferntes Asset handelt usw. besteht.
Vom Katalog aus geht die Anfrage durch das Providersystem. Ein oder mehrere Anbieter nutzen diese Orte, um die Inhalte zu finden und sie dann an das Gerät zurückzusenden.
In Addressables ist die Laufzeit asynchron. Dies gibt Ihnen die Flexibilität, ein Asset abzurufen, wenn Sie es brauchen, unabhängig davon, wo es sich befindet - sein Standort kann sich je nach Entwicklungsphase ändern -, ohne dass Sie den Spielcode ändern müssen.
Wenn Sie etwas als adressierbar markieren, wird es Teil einer Adressatengruppe, die ein Container für die adressierbaren Assets und ihre Daten ist. Sie können die Gruppen im Fenster Gruppen anzeigen, das die Basis für Addressables ist. Gruppen können festlegen, ob das Asset lokal auf einem Gerät oder auf einem Server gespeichert werden soll.
Die Daten zu den Adressatengruppen werden in Schemata gespeichert, bei denen es sich um Datenverträge handelt. Eines der Schemata befasst sich mit der Art und Weise, wie Ihre Assets und Inhalte zu Paketen zusammengestellt werden. Build Path " und " Load Path" gehören zu den nützlicheren Einstellungen, mit denen Sie Ihre Inhalte als lokal oder remote festlegen können, indem Sie eine Variable aus den Dropdown-Menüs auswählen.
Im System der Adressatenprofile erstellen Sie ein Profil für eine Adressatengruppe und legen dann für ein bestimmtes Profil fest, was die Variablen auswerten sollen. Auf diese Weise können Sie die Daten Ihrer Gruppe festlegen und aus der Ferne Änderungen vornehmen, ohne einen Teil der Gruppe neu codieren zu müssen.
Um das Beste aus Addressables herauszuholen, ist es hilfreich, Ihre Daten so zu visualisieren, wie Sie Ihr Spiel ausliefern möchten. Sie müssen sich nicht auf eine Struktur festlegen, da sich Profilvariablen während der Entwicklung leicht ändern lassen, aber Sie sollten einen allgemeinen Ansatz für die Organisation Ihrer Bundles haben.
Wenn Sie beispielsweise Ihr Spiel mit Remote-Inhalten ausliefern möchten, diese Inhalte aber während der Entwicklung lokal bleiben sollen, können Sie ein Profil erstellen, bei dem die Remote-Pfade auf die Streaming-Assets verweisen. Auf diese Weise können Sie alle entfernten Inhalte global in lokale Inhalte umwandeln, ohne den Code der Gruppe zu verändern.
Manchmal müssen Sie Inhalte auf einem Server hosten. Sie können einen Remote-Pfad einrichten und statt auf die tatsächliche URL zu verweisen, die von Ihrem Hosting-Dienst definierten Variablen verwenden.
Wenn Sie das Hosting aktivieren, richtet der Hosting Service einen HTTP-Host im Editor ein. Sie können Ihr Gerät oder Ihren Player an diesen Host anschließen, um Dinge auszuprobieren.
Eine leistungsstarke Funktion des Editor-Hostings besteht darin, dass Sie alles auf Fernzugriff einstellen können. Dies ist vor allem für Entwickler von Inhalten und Künstler nützlich, da Sie einen Player erstellen und auf Ihrem Gerät bereitstellen können, während Sie Ihre Inhalte weiter bearbeiten. Sie müssen Ihren Player nicht erneut bereitstellen oder sich Gedanken über das Verschieben von Inhalten von einem Gerät zum anderen machen. Lesen Sie unsere Dokumentation, um mehr über die Erstellung und Konfiguration von Hosting Services mit Addressables zu erfahren.
Da viele der wichtigsten technischen Herausforderungen bei der Unterstützung dynamischer Inhalte von Addressables gelöst wurden, bleibt immer noch das Problem der "letzten Meile" - das Hosting und die Bereitstellung von Inhalten für Spiele und Anwendungen in der Live-Produktion. Im Laufe dieses Jahres werden wir eine unternehmensfähige, globale Content-Hosting-Lösung auf den Markt bringen, die vollständig in das Addressables-System integriert ist. Wenn Sie mehr über diesen Dienst erfahren möchten, können Sie sich hier anmelden.
Das Live-Content-Team hat an Arbeitsabläufen gearbeitet, die die Arbeit für Sie beschleunigen, einschließlich einiger schneller Möglichkeiten zum Laden von Assets.
Wie können Sie Assets in Addressables laden?
Mit Adresse: Programmierer laden adressierbare Dateien oft über eine Zeichenkette, wobei sie die Standortkennung des Assets verwenden, um es zur Laufzeit leichter abrufen zu können.
Nach Etikett: Bietet eine zusätzliche adressierbare Asset-Kennung für das Laden ähnlicher Elemente zur Laufzeit.
Nach AssetReference: AssetReference funktioniert wie ein direkter Verweis, jedoch mit verzögerter Initialisierung. Das AssetReference-Objekt speichert die GUID als adressierbare Datei, die Sie bei Bedarf laden können. Künstler , die mit dem Editor arbeiten, bevorzugen möglicherweise diesen Arbeitsablauf.
Wenn das Asset, auf das Sie verweisen, Unterobjekte hat (z. B. Sprites innerhalb eines SpriteAtlas), können Sie auf das Unterobjekt weiter verweisen.
Wenn Sie Addressables und den Sprite-Ladeprozess in Aktion sehen wollen, schauen Sie sich den Sprite-Demo-Teil der Sitzung an.
Das Addressables-Paket enthält drei Build-Skripte, die Daten für den Wiedergabemodus erstellen, um die App-Entwicklung zu beschleunigen. Die Skripte sind Bestandsdatenbank verwenden, Gruppen simulieren und Vorhandenen Build verwenden.
Das Script Asset-Datenbank verwenden . So können Sie in den Spielmodus wechseln, während Sie an den Inhalten arbeiten, und das Spiel schnell durchspielen, während Sie den Spielfluss durcharbeiten. Es lädt Assets direkt aus der Asset-Datenbank und ermöglicht so eine schnelle Iteration ohne Analyse oder Erstellung von Asset-Bündeln.
Um zu sehen, wann Bundles während des Spiels geladen oder entladen werden, sehen Sie sich die Asset-Verwendung im Fenster Addressables Event Viewer an(Fenster > Asset Management > Addressables > Event Viewer). In diesem Modus können Sie Laststrategien simulieren und Ihre Inhaltsgruppen optimieren, um das richtige Gleichgewicht für eine Produktionsversion zu finden.
Das Skript " Vorhandenen Build verwenden " entspricht dem Build einer bereitgestellten Anwendung, erfordert aber, dass Sie die Daten in einem separaten Schritt erstellen. Wenn Sie keine Assets ändern, ist dieser Modus der schnellste, da er beim Aufrufen des Wiedergabemodus keine Daten verarbeitet.
Wenn Sie Addressables in Ihrem Projekt verwenden möchten, lesen Sie die Dokumentation zum Addressable Asset System, um zu erfahren, wie Sie beginnen können. Lesen Sie unseren Blogbeitrag, sehen Sie sich die GitHub-Samples an oder beteiligen Sie sich an den Diskussionen in den Foren.
Die im September 2020 eingeführte Cloud Content Delivery (CCD) ist unsere eigene unternehmensfähige, globale Content-Hosting-Lösung, die vollständig in das Addressables-System integriert ist. Mit CCD können Sie mühelos Spiel-Updates erstellen und veröffentlichen, mit leistungsfähigem Asset-Management und Content-Delivery über die Cloud - wesentliche Funktionen für den Betrieb von Live-Spielen und Apps. Erfahren Sie mehr und melden Sie sich hier an.