Unity XR SDK 공급자 설정 가이드
이번 가이드는 Unity XR SDK의 공급자를 설정하는 방법에 대해 설명합니다. 공급자는 Unity 프로젝트의 중요한 요소로, 매니페스트 파일과 하나 이상의 네이티브 플러그인으로 구성됩니다.
공급자 생성
공급자는 Unity의 프로젝트 구조 안에 존재하며, 다음과 같은 요소들로 구성될 수 있습니다:
- 매니페스트 파일
- 네이티브 플러그인
- 추가 에셋 (예: 스크립트, 이미지 등)
참고사항
- 공급자의 매니페스트 또는 에디터 네이티브 플러그인을 변경할 경우, Unity를 다시 시작해야 합니다.
파일 레이아웃
네이티브 플러그인은 UnitySubsystemsManifest.json
파일을 기준으로 하위 폴더에 위치해야 합니다. 공급자가 Unity 패키지에 포함되어 있지 않은 경우, Unity는 Assets
폴더에서 한 단계 더 깊은 위치에 있는 UnitySubsystemsManifest.json
파일을 찾습니다.
매니페스트 내용
- 제공되는 하위 시스템
- 플러그인 이름 등
자세한 내용은 UnitySubsystemsManifest.json 페이지를 참조하시기 바랍니다.
공급자 플러그인 빌드
네이티브 플러그인을 특정 플랫폼에 맞게 빌드하는 방법은 Unity 네이티브 플러그인 인터페이스 문서를 참조하십시오. Unity로 동적 라이브러리를 가져온 후 모든 설정(예: 타겟 플랫폼)이 올바른지 확인해야 합니다.
라이프사이클 핸들러 등록
하위 시스템에 대한 라이프사이클 핸들러를 등록해야 합니다. 다음은 그 예시입니다:
extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API
UnityPluginLoad(IUnityInterfaces* unityInterfaces)
{
s_XrDisplay = unityInterfaces->Get<IUnityXRDisplayInterface>();
UnityLifecycleProvider displayLifecycleHandler =
{
NULL, // 사용자 데이터를 전달할 수 있는 객체
&Lifecycle_Initialize,
&Lifecycle_Start,
&Lifecycle_Stop,
&Lifecycle_Shutdown
};
s_XrDisplay->RegisterLifecycleProvider("Provider Plugin Name", "Display0", &displayLifecycleHandler);
// 다른 하위 시스템에 등록
}
주의사항
RegisterLifecycleProvider
에 전달한 파라미터는 매니페스트 파일의name
필드와id
필드에 일치해야 합니다.Initialize
메서드를 호출하면 UnitySubsystemHandle을 얻을 수 있는 인스턴스 핸들이 생성됩니다.
예제 코드
static UnitySubsystemErrorCode UNITY_INTERFACE_API Lifecycle_Initialize(UnitySubsystemHandle handle, void* data)
{
// 그래픽스 스레드에서 콜백 등록
UnityXRDisplayGraphicsThreadProvider gfxThreadProvider = { NULL, NULL, &GfxThread_WaitForNextFrameDesc, NULL };
s_XrDisplay->RegisterProviderForGraphicsThread(handle, &gfxThreadProvider);
return kUnitySubsystemErrorCodeSuccess;
}
Unity에서 로드하기
Unity의 공급자를 로드하는 방법에 대한 자세한 정보는 하위 시스템의 런타임 발견 및 활성화 페이지를 참조하십시오.
결론
Unity XR SDK를 사용하여 공급자를 설정하는 것은 프로젝트에서 중요한 단계입니다. 이 가이드를 통해 기본적인 설정 방법을 이해하고 원하는 기능을 구현하는 데 도움을 받을 수 있기를 바랍니다.
추가 자료
링크 | 내용 |
---|---|
Unity 공식 문서 | Unity에 대한 더 많은 정보 |
Unity 포럼 | 커뮤니티와 소통 |
Unity Asset Store | 필요한 에셋을 찾기 |
이 가이드가 Unity XR SDK를 보다 쉽게 활용하는 데 도움이 되었기를 바랍니다!