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를 보다 쉽게 활용하는 데 도움이 되었기를 바랍니다!

Read more

Unity 매뉴얼 스크립팅 API 해설

이 문서는 Unity의 매뉴얼 스크립팅 API에 대한 간단한 해설과 활용 예제들을 포함하고 있습니다. Unity는 게임 개발 플랫폼으로, 스크립팅 API를 통해 게임의 다양한 기능을 제어하고 수정할 수 있습니다. 버전 Unity 스크립팅 API는 여러 버전으로 제공됩니다. 주의 깊게 선택하여 사용하는 것이 중요합니다. 버전 설명 2023.2 최신 기능 및 버그 수정이 추가됨

By 이재협/실장/시스템개발실/PHYSIA

Unity 매뉴얼 스크립팅 API 설명서 해설

이 문서는 Unity의 매뉴얼 스크립팅 API에 대한 정보를 제공하며, 버전에 따라 다르게 적용되는 내용들을 설명합니다. 본 문서에서는 주요 내용을 간단히 정리하고 활용 가능 예제를 통해 이해를 돕겠습니다. 기본 개념 Unity에서 스크립팅 API는 게임 오브젝트와 그들의 동작을 제어하기 위한 강력한 도구입니다. 이를 통해 게임의 로직, 물리 엔진, 애니메이션 및 사용자 인터페이스를

By 이재협/실장/시스템개발실/PHYSIA

Unity 스크립팅 API 가이드

이 문서는 Unity의 스크립팅 API에 대해 설명합니다. Unity는 게임 개발을 위한 인기 있는 엔진으로, 강력한 스크립팅 기능을 제공합니다. 이 가이드는 Unity에서 스크립트를 작성하고 사용하는 방법을 이해하는 데 도움을 드립니다. 목차 * Unity 스크립팅 소개 * 기본 스크립트 생성 * 스크립트 사용 예제 * 응용 프로그램 * 참고 자료 Unity 스크립팅 소개 Unity는 C# 프로그래밍 언어를

By 이재협/실장/시스템개발실/PHYSIA