Delen via


Remote Rendering voor Unity instellen

Als u Azure Remote Rendering (ARR) in Unity wilt inschakelen, is mogelijk een bepaalde projectconfiguratie vereist. We bieden ook speciale methoden die zorgen voor enkele Unity-specifieke aspecten.

Projectconfiguratie

Wanneer u OpenXR gebruikt, moet de Azure Remote Rendering-functie zijn ingeschakeld in de Unity OpenXR-instellingen.

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.

Gebruik voor andere vereiste en aanbevolen projectinstellingen de Project Validator die is opgenomen in het Azure Remote Rendering Unity-pakket:

  1. Kies de vermelding ValidateProject in het menu Remote Rendering op de werkbalk van de Unity-editor.
  2. Controleer waar nodig het venster Project Validator op fouten en los projectinstellingen op.

Opstarten en afsluiten

Als u Remote Rendering wilt initialiseren, gebruikt u RemoteManagerUnity. Deze klasse roept de algemene RenderingConnection gegevens aan, maar implementeert al Unity-specifieke details voor u. Unity maakt bijvoorbeeld gebruik van een specifiek coördinatensysteem. Bij het aanroepen RemoteManagerUnity.Initializewordt de juiste conventie ingesteld. Voor de aanroep moet u ook de Unity-camera opgeven die moet worden gebruikt voor het weergeven van de extern gerenderde inhoud.

// 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);

Als u Remote Rendering wilt afsluiten, roept u aan RemoteManagerStatic.ShutdownRemoteRendering().

Nadat een sessie RenderingSession is gemaakt en gekozen als de primaire renderingsessie, moet deze worden geregistreerd bij RemoteManagerUnity:

RemoteManagerUnity.CurrentSession = ...

Volledige voorbeeldcode

In dit codevoorbeeld ziet u alle stappen die nodig zijn voor het initialiseren van Azure Remote Rendering in Unity:

// 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();

Gemaksfuncties

Sessiestatus-gebeurtenissen

RemoteManagerUnity.OnSessionUpdate verzendt gebeurtenissen voor wanneer de sessiestatus wordt gewijzigd, raadpleegt u de codedocumentatie voor meer informatie.

ARRServiceUnity

ARRServiceUnity is een optioneel onderdeel om het instellen en sessiebeheer te stroomlijnen. Het bevat opties om de sessie automatisch te stoppen wanneer de toepassing wordt afgesloten of de afspeelmodus wordt afgesloten in de editor. De sessielease wordt automatisch vernieuwd wanneer dat nodig is. Hiermee worden gegevens zoals de sessie-eigenschappen in de cache opgeslagen (zie de LastProperties variabele) en worden gebeurtenissen weergegeven voor wijzigingen in de sessiestatus en sessiefouten.

Er kunnen niet meer dan één exemplaar tegelijk ARRServiceUnity zijn. Het is bedoeld om u sneller op weg te helpen door een aantal algemene functionaliteit te implementeren. Voor een grotere toepassing kan het echter beter zijn om die dingen zelf te doen.

Zie Zelfstudie: Extern gegenereerde modellen weergeven voor een voorbeeld van het instellen en gebruiken ARRServiceUnity van deze zelfstudie.

Volgende stappen