Teilen über


Einrichten von Remote Rendering für Unity

Um Azure Remote Rendering (ARR) in Unity zu aktivieren, sind möglicherweise einige Projektkonfigurationen erforderlich. Wir bieten auch dedizierte Methoden, die sich um einige Unity-spezifische Aspekte kümmern.

Projektkonfiguration

Bei Verwendung von OpenXR muss das Azure Remote Rendering-Feature in den Unity OpenXR-Einstellungen aktiviert sein.

Screenshot of the Unity Project Settings dialog. The Open XR subentry is selected in the list on the left. The Azure Remote Rendering Open XR feature is highlighted with a checked checkbox.

Verwenden Sie für andere erforderliche und empfohlene Projekteinstellungen den Project Validator, der im Azure Remote Rendering Unity-Paket enthalten ist:

  1. Wählen Sie den Eintrag "ValidateProject " im Menü "Remoterendering " in der Unity-Editorsymbolleiste aus.
  2. Überprüfen Sie das Fenster Projektvalidierung auf Fehler und korrigieren Sie ggf. die Projekteinstellungen.

Starten und Herunterfahren

Verwenden Sie RemoteManagerUnity, um Remote Rendering zu initialisieren. Diese Klasse ruft den generischen RenderingConnection auf, implementiert aber bereits Unity-spezifische Details für Sie. Unity verwendet beispielsweise ein bestimmtes Koordinatensystem. Beim Aufrufen RemoteManagerUnity.Initializewird die richtige Konvention festgelegt. Der Aufruf erfordert auch, dass Sie die Unity-Kamera bereitstellen, die zum Anzeigen der remote gerenderten Inhalte verwendet werden soll.

// initialize Azure Remote Rendering for use in Unity:
// it needs to know which camera is used for rendering the scene
RemoteUnityClientInit clientInit = new RemoteUnityClientInit(Camera.main);
RemoteManagerUnity.InitializeManager(clientInit);

Um Remote Rendering herunterzufahren, rufen Sie RemoteManagerStatic.ShutdownRemoteRendering() auf.

Nachdem eine RenderingSession erstellt und als primäre Renderingsitzung ausgewählt wurde, muss sie bei RemoteManagerUnity registriert werden:

RemoteManagerUnity.CurrentSession = ...

Vollständiger Beispielcode

In diesem Codebeispiel werden alle Schritte veranschaulicht, die zum Initialisieren von Azure Remote Rendering in Unity erforderlich sind:

// initialize Remote Rendering
RemoteUnityClientInit clientInit = new RemoteUnityClientInit(Camera.main);
RemoteManagerUnity.InitializeManager(clientInit);

// create a frontend
SessionConfiguration sessionConfig = new SessionConfiguration();
// ... fill out sessionConfig ...
RemoteRenderingClient client = new RemoteRenderingClient(sessionConfig);

// start a session
CreateRenderingSessionResult result = await client.CreateNewRenderingSessionAsync(new RenderingSessionCreationOptions(RenderingSessionVmSize.Standard, 0, 30));
RenderingSession session = result.Session;

// let RemoteManagerUnity know about the session we want to use
RemoteManagerUnity.CurrentSession = session;

await session.ConnectAsync(new RendererInitOptions());

/// When connected, load and modify content

RemoteManagerStatic.ShutdownRemoteRendering();

Hilfsfunktionen

Sitzungsstatusereignisse

RemoteManagerUnity.OnSessionUpdate gibt Ereignisse für die Änderung des Sitzungszustands aus. Weitere Informationen dazu finden Sie in der Codedokumentation.

ARRServiceUnity

ARRServiceUnity ist eine optionale Komponente zum Optimieren der Einrichtung und der Sitzungsverwaltung. Es enthält Optionen, um die Sitzung automatisch zu beenden, wenn die Anwendung beendet oder der Wiedergabemodus im Editor beendet wird. Bei Bedarf wird die Sitzungsleasierung automatisch verlängert. Sie speichert Daten, z. B. die Sitzungseigenschaften (siehe Variable LastProperties), und stellt Ereignisse für Sitzungszustandsänderungen und Sitzungsfehler bereit.

Es darf nicht mehr als eine Instanz von ARRServiceUnity gleichzeitig vorhanden sein. Dies soll Ihren Einstieg beschleunigen, indem einige allgemeine Funktionen implementiert werden. Für eine größere Anwendung ist es jedoch möglicherweise besser, diese Dinge selbst auszuführen.

Ein Beispiel zum Einrichten und Verwenden von ARRServiceUnity finden Sie im Tutorial: Anzeigen eines remote gerenderten Modells.

Nächste Schritte