The Unity XR SDK is aimed at specialist users who want to develop their own XR providers that work with Unity. To download XR SDK, you must sign up for access on this page.
XR SDK 패키지를 통해 여러 백엔드(“공급자”라고 부름)가 Unity에서 단일 엔진 기능(“하위 시스템”이라고 부름)을 구현할 수 있습니다. 사용자 애플리케이션은 런타임 시점에 공급자를 선택하고 활성화할 수 있습니다.
단일 하위 시스템은 다음으로 구성됩니다.
하위 시스템 기술자(descriptor)는 하위 시스템을 로드하거나 초기화하기 전에 점검할 수 있는 하위 시스템의 메타데이터입니다. 메타데이터는 매니페스트 파일에서 가져오고 C# 인터페이스를 통해 액세스합니다. Create
메서드는 하위 시스템을 활성화하고 사용자 스크립트에 인스턴스를 제공합니다.
자세한 내용은 하위 시스템의 런타임 발견 및 활성화 페이지를 참조하십시오.
하위 시스템 기술자에서 Create
가 호출되면 하위 시스템 인스턴스가 생성됩니다. 스크립팅 코드는 하위 시스템과 통신하기 위해 이러한 인스턴스와 상호작용합니다. 하위 시스템 자체에는 고유한 라이프사이클이 있으며, 이는 시작, 중지 및 종료할 수 있습니다.
공급자는 하위 시스템의 기본 구현입니다. 하나의 하위 시스템은 여러 공급자를 보유할 수 있습니다. 일부 하위 시스템에서는 여러 공급자를 한 번에 활성화할 수 있지만, 다른 하위 시스템은 상호 배타적일 수 있습니다.
공급자는 Unity 네이티브 플러그인 인터페이스를 준수하며, 일부 추가 라이프사이클 지원이 이를 기반으로 빌드되었습니다. 엔트리 포인트는 UnityPluginLoad
메서드입니다. 여기에서 공급자는 구현하려는 모든 하위 시스템에 등록해야 합니다.
extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API
UnityPluginLoad(IUnityInterfaces* unityInterfaces)
{
s_XrDisplay = unityInterfaces->Get<IUnityXRDisplayInterface>();
UnityLifecycleProvider displayLifecycleHandler =
{
NULL, // This can be any object you want to be passed as userData to the following functions
&Lifecycle_Initialize,
&Lifecycle_Start,
&Lifecycle_Stop,
&Lifecycle_Shutdown
};
s_XrDisplay->RegisterLifecycleProvider("Provider Plugin Name", "Display0", &displayLifecycleHandler);
// Register with other subsystems...
}