HolographicRemoting

class in UnityEngine.XR.WSA

Switch to Manual

Description

The Holographic Remoting interface allows you to connect an application to a remote holographic device, and stream data between the application and that device.

using System.Collections;
using UnityEngine;
using UnityEngine.XR;
using UnityEngine.XR.WSA;

public class Script : MonoBehaviour { public string IpV4RemotingAddress = "127.0.0.1"; public int ConnectRetryCount = 5;

void Update() { if (Input.GetKeyDown(KeyCode.Q)) { if (HolographicRemoting.ConnectionState != HolographicStreamerConnectionState.Connected) StartCoroutine(ConnectRemotingSession()); else StartCoroutine(DisconnectRemotingSession()); } }

IEnumerator ConnectRemotingSession() { if (HolographicRemoting.ConnectionState != HolographicStreamerConnectionState.Disconnected) { Debug.LogWarning("Remoting already connected. Please disconnect before trying to connect again."); } else { HolographicRemoting.Connect(IpV4RemotingAddress); yield return null;

int currentRetries = 0; while (currentRetries < ConnectRetryCount &amp;&amp; HolographicRemoting.ConnectionState != HolographicStreamerConnectionState.Connected) { currentRetries++; Debug.Log($"Waiting on connection: attempt {currentRetries}."); yield return new WaitForSeconds(1f); }

if (currentRetries >= ConnectRetryCount) { Debug.LogError($"Unable to connect to remote session after {currentRetries} attempts."); } else { Debug.Log("Loading Windows MR for Remoting..."); XRSettings.LoadDeviceByName("WindowsMR"); yield return new WaitForSeconds(1); Debug.Log("Starting XR..."); XRSettings.enabled = true; yield return new WaitForSeconds(1); Debug.Log($"XR activation state: {XRSettings.enabled}");

if (!XRSettings.enabled) HolographicRemoting.Disconnect(); } } }

IEnumerator DisconnectRemotingSession() { if (HolographicRemoting.ConnectionState != HolographicStreamerConnectionState.Connected) { Debug.LogWarning("Remoting is not connected. Please start an active remoting session before attempting to disconnect."); } else { HolographicRemoting.Disconnect(); yield return null;

int currentRetries = 0; while (currentRetries < ConnectRetryCount &amp;&amp; HolographicRemoting.ConnectionState != HolographicStreamerConnectionState.Disconnected) { currentRetries++; Debug.Log($"Waiting on disconnect: attempt {currentRetries}."); yield return new WaitForSeconds(1f); currentRetries++; }

if (currentRetries >= ConnectRetryCount) { Debug.LogError($"Unable to disconnedct from remote session after {currentRetries} attempts."); } else { XRSettings.enabled = false; } } } }

Static Variables

ConnectionStateWhether the app is displaying protected content.
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961