Communication à distance holographique dans une application de bureauHolographic Remoting in desktop app

Notes

La prise en charge de l’accès distant aux applications autonomes Windows a été ajoutée dans la version du package 0.1.3.Windows Standalone app remoting support was added in the 0.1.3 package release. À partir de la version 0.1.3, cette fonctionnalité ne prend pas en charge les builds UWP.As of version 0.1.3, this feature doesn’t support UWP builds.

  1. Suivez les étapes de la configuration de la communication à distance holographiqueFollow the steps in Holographic Remoting setup

  2. Ouvrez les paramètres du projet de modification >, accédez à gestion du plug-in XR, puis cochez la case Windows Mixed Reality Feature Set .Open Edit -> Project Settings, navigate to XR plug-in Management, and check the Windows Mixed Reality feature set box. Désactivez également l’option initialiser XR au démarrage:Also, uncheck Initialize XR on Startup:

    Capture d’écran du panneau Paramètres du projet ouvrir dans l’éditeur Unity avec l’option initialiser XR au démarrage désactivée

  3. Développez la section fonctionnalités sous OpenXR et sélectionnez Afficher tout .Expand the Features section under OpenXR and select Show All

  4. Cochez la case accès distant aux applications holographiques :Check the Holographic App Remoting checkbox:

    Capture d’écran du panneau Paramètres du projet ouvert dans l’éditeur Unity avec l’accès distant à l’application activé

  5. Ensuite, écrivez du code pour définir la configuration de communication à distance et déclencher l’initialisation XR.Next, write some code to set the remoting configuration and trigger XR initialization. L’exemple d’application distribué avec le plug-in OpenXR de réalité mixte contient AppRemoting. cs, qui montre un exemple de scénario de connexion à une adresse IP spécifique au moment de l’exécution.The sample app distributed with the Mixed Reality OpenXR Plugin contains AppRemoting.cs, which shows an example scenario for connecting to a specific IP address at runtime. À ce stade, le déploiement de l’exemple d’application sur un ordinateur local affiche un champ d’entrée d’adresse IP avec un bouton de connexion.Deploying the sample app to a local machine at this point will display an IP address input field with a connect button. Tapez une adresse IP et cliquez sur connecter pour initialiser XR et tenter de vous connecter à l’appareil cible :Typing an IP address and clicking Connect will initialize XR and attempt to connect to the target device:

    Capture d’écran de l’exemple d’application affichant un exemple d’interface utilisateur de communication à distance d’application

  6. Pour écrire du code de connexion personnalisé, appelez Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Connect avec un rempli RemotingConfiguration .To write custom connection code, call Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Connect with a filled-in RemotingConfiguration. L’exemple d’application l’expose dans l’inspecteur et montre comment renseigner l’adresse IP à partir d’un champ de texte.The sample app exposes this in the inspector and shows how to fill in the IP address from a text field. L’appel de Connect va définir la configuration et initialiser automatiquement XR, c’est pourquoi il doit être appelé en tant que Coroutine :Calling Connect will set the configuration and automatically initialize XR, which is why it must be called as a coroutine:

    StartCoroutine(Remoting.AppRemoting.Connect(remotingConfiguration));
    
  7. Lors de l’exécution de, vous pouvez obtenir l’état actuel de la connexion avec l' AppRemoting.TryGetConnectionState API et éventuellement déconnecter et déinitialiser XR à l’aide de AppRemoting.Disconnect() .While running, you can obtain the current connection state with the AppRemoting.TryGetConnectionState API, and optionally disconnect and de-initialize XR using AppRemoting.Disconnect(). Cela peut être utilisé pour se déconnecter et se reconnecter à un autre périphérique au cours de la même session d’application.This could be used to disconnect and reconnect to a different device within the same app session. L’exemple d’application fournit un cube tappable qui déconnecte la session de communication à distance si elle est exploitée.The sample app provides a tappable cube which will disconnect the remoting session if tapped.

Migration à partir des API précédentesMigration from previous APIs

UnityEngine. XR. WSA. HolographicRemotingUnityEngine.XR.WSA.HolographicRemoting

À partir de l’exemple de code sur les documents Unity:From the sample code on Unity's docs:

XR. WSA. HolographicRemotingXR.WSA.HolographicRemoting OpenXR. Remoting. AppRemotingOpenXR.Remoting.AppRemoting
HolographicRemoting.Connect(String) AppRemoting.Connect(RemotingConfiguration)
HolographicRemoting.ConnectionState AppRemoting.TryGetConnectionState(out ConnectionState, out DisconnectReason)
StartCoroutine(LoadDevice("WindowsMR")) [N/A : se produit automatiquement lors de l’appel de AppRemoting.Connect ][N/A: Automatically happens when calling AppRemoting.Connect]

UnityEngine. XR. WindowsMR. WindowsMRRemotingUnityEngine.XR.WindowsMR.WindowsMRRemoting

XR. WindowsMR.WindowsMRRemotingXR.WindowsMR.WindowsMRRemoting OpenXR. Remoting. AppRemotingOpenXR.Remoting.AppRemoting
WindowsMRRemoting.Connect() AppRemoting.Connect(RemotingConfiguration)
WindowsMRRemoting.Disconnect() AppRemoting.Disconnect()
WindowsMRRemoting.TryGetConnectionState(out ConnectionState) et WindowsMRRemoting.TryGetConnectionFailureReason(out ConnectionFailureReason)WindowsMRRemoting.TryGetConnectionState(out ConnectionState) and WindowsMRRemoting.TryGetConnectionFailureReason(out ConnectionFailureReason) AppRemoting.TryGetConnectionState(out ConnectionState, out DisconnectReason)
WindowsMRRemoting.isAudioEnabled, WindowsMRRemoting.maxBitRateKbps, WindowsMRRemoting.remoteMachineNameWindowsMRRemoting.isAudioEnabled, WindowsMRRemoting.maxBitRateKbps, WindowsMRRemoting.remoteMachineName Passé AppRemoting.Connect par le biais du RemotingConfiguration structPassed into AppRemoting.Connect via the RemotingConfiguration struct
WindowsMRRemoting.isConnected AppRemoting.TryGetConnectionState(out ConnectionState state, out _) && state == ConnectionState.Connected