共用方式為


設定 Unity 遠端轉譯

若要在 Unity 中啟用 Azure 遠端轉譯 (ARR),可能需要某些專案設定。 我們也提供專用的方法,負責處理某些 Unity 特定層面。

專案組態

使用 OpenXR 時, 必須在 Unity OpenXR 設定中啟用 Azure 遠端轉譯 功能。

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.

如需其他必要和建議的專案設定,請使用 Azure 遠端轉譯 Unity 套件中包含的專案驗證程式

  1. Unity 編輯器工具列中的 [遠端轉譯 ] 功能表選擇 ValidateProject 專案。
  2. 檢閱 [ 專案驗證程式 ] 視窗是否有錯誤,並視需要修正專案設定。

啟動和關閉

若要初始化遠端轉譯,請使用 RemoteManagerUnity 。 這個類別會呼叫泛型 RenderingConnection ,但已為您實作 Unity 特定的詳細資料。 例如,Unity 會使用特定的座標系統。 呼叫 RemoteManagerUnity.Initialize 時,會設定適當的慣例。 呼叫也需要提供應該用來顯示遠端轉譯內容的 Unity 相機。

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

若要關閉遠端轉譯,請呼叫 RemoteManagerStatic.ShutdownRemoteRendering()

RenderingSession建立並選擇 作為主要轉譯會話之後,它必須向 RemoteManagerUnity 註冊:

RemoteManagerUnity.CurrentSession = ...

完整範例程式碼

此程式碼範例示範在 Unity 中初始化 Azure 遠端轉譯所需的所有步驟:

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

便利函式

會話狀態事件

RemoteManagerUnity.OnSessionUpdate 發出其會話狀態變更時的事件,請參閱程式碼檔以取得詳細資料。

ARRServiceUnity

ARRServiceUnity 是一個選擇性元件,可簡化設定和會話管理。 其中包含在編輯器中結束應用程式或播放模式時自動停止其會話的選項。 它會視需要自動更新會話租用。 它會快取會話屬性等資料(請參閱其 LastProperties 變數),並公開會話狀態變更和會話錯誤的事件。

一次不能有多個 實例 ARRServiceUnity 。 它旨在藉由實作一些常見的功能,讓您更快速地開始使用。 不過,對於較大的應用程式,最好自行執行這些動作。

如需如何設定和使用 ARRServiceUnity 範例,請參閱 教學課程:檢視遠端轉譯的模型

下一步