Unity용 Remote Rendering 설정
Unity에서 ARR(Azure Remote Rendering)을 사용하도록 설정하려면 일부 프로젝트 구성이 필요할 수 있습니다. 또한 일부 Unity 관련 측면을 처리하는 전용 메서드도 제공합니다.
프로젝트 구성
OpenXR을 사용하는 경우 Unity OpenXR 설정에서 Azure Remote Rendering 기능을 사용하도록 설정해야 합니다.
기타 필수 및 권장 프로젝트 설정의 경우 Azure Remote Rendering Unity 패키지에 포함된 프로젝트 유효성 검사기를 사용합니다.
- Unity 편집기 도구 모음의 Remote Rendering 메뉴에서 ValidateProject 항목을 선택합니다.
- 프로젝트 검사기 창에서 오류를 검토하고 필요한 경우 프로젝트 설정을 수정합니다.
시작 및 종료
Remote Rendering을 초기화하려면 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);
Remote Rendering을 종료하려면 RemoteManagerStatic.ShutdownRemoteRendering()
을 호출합니다.
RenderingSession
을 만들고 기본 렌더링 세션으로 선택한 후에는 RemoteManagerUnity
에 등록해야 합니다.
RemoteManagerUnity.CurrentSession = ...
전체 예제 코드
이 코드 예는 Unity에서 Azure Remote Rendering을 초기화하는 데 필요한 모든 단계를 보여 줍니다.
// 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
를 설정하고 사용하는 방법에 대한 예제는 자습서: 원격으로 렌더링된 모델 보기를 참조하세요.