Partager via


Configurer Remote Rendering pour Unity

Pour activer Azure Remote Rendering (ARR) dans Unity, une configuration de projet peut être nécessaire. Nous fournissons également des méthodes dédiées qui prennent en charge certains aspects spécifiques à Unity.

Configuration du projet

Lorsque vous utilisez OpenXR, la fonctionnalité Azure Remote Rendering doit être activée dans les paramètres Unity OpenXR.

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.

Pour les autres paramètres de projet requis et recommandés, utilisez le validateur de projet inclus dans le package Unity Azure Remote Rendering :

  1. Choisissez l’entrée ValidateProject dans le menu Remote Rendering dans la barre d’outils de l’éditeur Unity.
  2. Vérifiez que la fenêtre du Validateur de projet ne contient pas d’erreurs et corrigez les paramètres du projet si nécessaire.

Démarrage et arrêt

Pour initialiser Remote Rendering, utilisez RemoteManagerUnity. Cette classe effectue des appels dans le RenderingConnection générique, mais implémente déjà des détails spécifiques à Unity pour vous. Par exemple, Unity utilise un système de coordonnées spécifique. Lors de l’appel RemoteManagerUnity.Initialize, la convention appropriée est définie. L’appel nécessite également que vous fournissiez l’appareil photo Unity qui doit être utilisé pour afficher le contenu rendu à distance.

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

Pour arrêter Remote Rendering, appelez RemoteManagerStatic.ShutdownRemoteRendering().

Quand une RenderingSession a été créée et choisie comme session de rendu principale, elle doit être inscrite auprès de RemoteManagerUnity :

RemoteManagerUnity.CurrentSession = ...

Exemple de code complet

Cet exemple de code illustre toutes les étapes nécessaires pour initialiser Azure Remote Rendering dans 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();

Fonctions pratiques

Événements d’état de session

RemoteManagerUnity.OnSessionUpdate émet des événements quand son état de session change. Consultez la documentation sur le code pour plus d’informations.

ARRServiceUnity

ARRServiceUnity est un composant facultatif permettant de simplifier la configuration et la gestion des sessions. Il contient des options permettant d’arrêter automatiquement sa session lorsque l’application quitte ou que le mode lecture est arrêté dans l’éditeur. Il renouvelle automatiquement le bail de session si nécessaire. Il met en cache des données telles que les propriétés de session (reportez-vous à sa variable LastProperties) et expose des événements pour les changements d’état de session et les erreurs de session.

Il ne peut pas y avoir plus d’une instance de ARRServiceUnity à la fois. Ce composant vous permet de commencer plus rapidement grâce à l’implémentation de fonctionnalités courantes. Pour une application plus grande, il peut vous être plus avantageux d’effectuer ces tâches vous-même.

Pour obtenir un exemple de configuration et d’utilisation de ARRServiceUnity, consultez le Tutoriel : Affichage de modèles rendus à distance.

Étapes suivantes