Konfigurowanie usługi Remote Rendering dla środowiska Unity

Aby włączyć usługę Azure Remote Rendering (ARR) w środowisku Unity, może być wymagana pewna konfiguracja projektu. Udostępniamy również dedykowane metody, które dbają o niektóre aspekty specyficzne dla aparatu Unity.

Konfiguracja projektu

W przypadku korzystania z biblioteki OpenXR funkcja Azure Remote Rendering musi być włączona w ustawieniach aparatu 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.

W przypadku innych wymaganych i zalecanych ustawień projektu użyj modułu sprawdzania poprawności projektu zawartego w pakiecie aparatu Unity usługi Azure Remote Rendering:

  1. Wybierz wpis ValidateProject z menu Remote Rendering na pasku narzędzi edytora aparatu Unity.
  2. Przejrzyj okno Moduł sprawdzania poprawności projektu pod kątem błędów i napraw ustawienia projektu w razie potrzeby.

Uruchamianie i zamykanie

Aby zainicjować usługę Remote Rendering, użyj polecenia RemoteManagerUnity. Ta klasa wywołuje ogólne RenderingConnection , ale już implementuje szczegóły specyficzne dla aparatu Unity. Na przykład aparat Unity używa określonego układu współrzędnych. Podczas wywoływania RemoteManagerUnity.Initializemetody ustawiono właściwą konwencję. Wywołanie wymaga również podania aparatu Unity, który powinien być używany do wyświetlania zdalnie renderowanej zawartości.

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

Aby zamknąć usługę Remote Rendering, wywołaj metodę RemoteManagerStatic.ShutdownRemoteRendering().

Po utworzeniu RenderingSession elementu i wybraniu jej jako podstawowej sesji renderowania należy ją zarejestrować za pomocą RemoteManagerUnitypolecenia :

RemoteManagerUnity.CurrentSession = ...

Pełny przykładowy kod

W tym przykładzie kodu przedstawiono wszystkie kroki wymagane do zainicjowania usługi Azure Remote Rendering w środowisku 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();

Funkcje wygodne

Zdarzenia stanu sesji

RemoteManagerUnity.OnSessionUpdate Emituje zdarzenia w przypadku zmiany stanu sesji, zobacz dokumentację kodu, aby uzyskać szczegółowe informacje.

ARRServiceUnity

ARRServiceUnity jest opcjonalnym składnikiem usprawnianym zarządzanie konfiguracją i sesją. Zawiera opcje automatycznego zatrzymywania sesji po zakończeniu działania aplikacji lub zakończeniu trybu odtwarzania w edytorze. Automatycznie odnawia dzierżawę sesji w razie potrzeby. Buforuje dane, takie jak właściwości sesji (patrz jej LastProperties zmienna) i uwidacznia zdarzenia dotyczące zmian stanu sesji i błędów sesji.

Jednocześnie nie może istnieć więcej niż jedno wystąpienie ARRServiceUnity . Jest to przeznaczone do szybszego rozpoczęcia pracy przez zaimplementowanie niektórych typowych funkcji. W przypadku większej aplikacji lepiej jednak zrobić te rzeczy samodzielnie.

Aby zapoznać się z przykładem konfigurowania i używania, ARRServiceUnity zobacz Samouczek: wyświetlanie zdalnie renderowanych modeli.

Następne kroki