XR용 Unity 프로젝트를 설정하려면 다음 단계를 따르십시오.
참고:
2019.3 이전 Unity 버전에서 사용되었던 암시적 카메라 추적이 새로운 XR 플러그인 프레임워크에서 제거되었습니다. 암시적 추적은 간단한 HMD 전용 애플리케이션에서는 작동했지만, 컨트롤러 및 기타 상호작용과 함께 사용할 때는 직관적이지 않았습니다.
XR 추적이 XR 플러그인 프레임워크에서 올바르게 설정되었는지 확인하려면 아래 단계를 따르십시오.
아래 지침은 새 씬에서 또는 다음 조건을 충족하는 씬에서 시작하는 경우에 적용됩니다.
Unity의 메인 메뉴에서 GameObject > XR > Add XR Rig으로 이동하십시오. 그러면 XR 플러그인 프레임워크를 올바르게 지원하는 씬으로 새 씬을 변환하려고 시도합니다.
콘솔 로그에 아무 오류도 보이지 않으면 씬에서 Play를 클릭할 수 있습니다. 그러면 카메라가 XR 플러그인 관리 패키지에서 설정된 기기에 대해 추적하는 것을 볼 수 있습니다.
Unity가 씬을 올바르게 마이그레이션할 수 없으면 콘솔 로그에 오류가 표시됩니다. 아래의 기존 씬에서 시작 섹션에 있는 지침을 따르십시오.
기존 씬에서 마이그레이션하는 경우에는 빈 씬에서 마이그레이션할 때에 비해 몇 가지 단계가 추가됩니다. 따라서 씬의 설정 방식에 따라 다른 옵션이 존재합니다. 전반적인 목표는 XR 플러그인 프레임워크로 마이그레이션하기 전과 동일한 방식으로 씬을 추적하도록 만드는 것입니다.
메인 카메라로 태그가 지정된 씬에서 카메라를 찾으십시오. Unity는 이 카메라를 사용하여 HMD 또는 다른 메인 기기에 렌더링합니다.
메인 카메라 게임 오브젝트의 위치를 확인하고 해당 단계를 수행하십시오.
단순한 씬을 마이그레이션하려면 아래 단계를 따르십시오.
이전에 씬 계층 구조의 루트에 있던 카메라를 마이그레이션하면 이 패키지에 포함된 XR 릭 프리팹을 인스턴스화하여 기존 카메라를 XR 릭으로 변경할 수 있습니다.
이 프리팹은 Packages/XR Legacy Input Helpers/Prefabs
폴더에서 찾을 수 있습니다. 프리팹을 씬 계층 구조로 드래그하여 해당 프리팹의 새 인스턴스를 생성하십시오.
이제 XR 릭 프리팹의 인스턴스가 있으므로, XR 릭 게임 오브젝트를 설정하여 애플리케이션이 시작될 때 결과 카메라 포지션이 정확하도록 만들어야 합니다.
XR 릭 게임 오브젝트의 포지션과 회전을 변경하여 현재 메인 카메라의 포지션에 일치시키십시오. 메인 카메라에 스케일 변환을 적용하는 경우 이 스케일을 XR 릭 게임 오브젝트에도 적용해야 합니다. XR 릭을 스케일하는 경우 세 축 모두에서 균일한 스케일을 사용할 것을 적극 권장합니다.
마이그레이션되지 않은 씬의 메인 카메라가 바닥 위에 있는 경우(Y 컴포넌트가 > 0.0f) 이 포지션 변경을 복제해야 합니다. 복제하려는 변경의 원래 포지션에 따라 몇 가지 다른 방식으로 이러한 작업을 수행할 수 있습니다.
3.1 - 카메라를 들어올려서 사용자의 키를 시뮬레이션합니다.
이전 메인 카메라를 바닥 위로 올려 사용자의 키를 시뮬레이션하고 애플리케이션이 기기 추적 원점("고정" 추적 모드라고도 함)을 사용하는 경우 Camera Offset 컴포넌트가 추가 들어올리기를 수행합니다. 들어올려지지 않으면 다음 섹션을 참조하십시오.
애플리케이션이 기기 추적 원점 모드에서 사용될 때 카메라가 수직으로 올라가도록 설정하려면 XR 릭 게임 오브젝트의 Camera Offset 컴포넌트에서 다음 옵션을 설정하십시오.
옵션 | 값 |
---|---|
Requested Tracking Mode | 디바이스 |
Camera Y Offset | 사용자 키를 시뮬레이션하기 위해 기존 메인 카메라를 올리는 높이로 이 옵션을 설정합니다. |
이 옵션을 설정한 후 XR 릭 게임 오브젝트의 Y Position 포지션을 애플리케이션에서 “바닥”으로 간주하는 값(대개 0.0f)으로 변경하십시오. Camera Offset 컴포넌트가 필요에 따라 추가 들어올리기를 추가합니다.
3.2 - 들어올리기를 통해 카메라 포지션을 표시합니다.
마이그레이션되지 않은 씬이 바닥 추적 원점(예전에는 “룸 스케일” 추적 모드라고 불림)을 사용하고 메인 카메라의 포지션이 사용자의 키를 포함하지 않고 사용자의 시작 지점을 나타내는 경우(즉 카메라가 사실상 논리적 “바닥”에 있는 경우) 다음 단계를 따라 씬을 올바르게 마이그레이션하십시오.
다음으로, XR 릭 인스턴스에서 메인 카메라 게임 오브젝트를 삭제하고, 기존 메인 카메라 게임 오브젝트를 카메라 오프셋 게임 오브젝트의 부모로 지정하십시오.
메인 카메라 게임 오브젝트의 포지션과 회전이 모두 0,0,0인지 확인하십시오. 카메라의 포지션을 변경하는 것이 아니라, 언제나 XR 릭 게임 오브젝트의 포지션을 변경해야 합니다. 또한 게임 오브젝트 또는 컴포넌트에서 카메라로의 연결이 여전히 올바른지도 확인해야 합니다.
위의 XR용 Unity 프로젝트 설정 섹션을 참조하십시오.
이제 씬이 성공적으로 마이그레이션되었으므로 Play를 누르고 카메라의 시작 위치가 XR 플러그인 프레임워크로 마이그레이션하기 전과 같은지 확인합니다. 그렇지 않은 경우 아래의 문제 해결 섹션을 참조하십시오.
현재 씬이 레거시 VR 시스템의 암시적 카메라 추적을 사용하고 메인 카메라가 게임 오브젝트 계층 구조의 일부인 경우 다음 단계에 따라 레거시 VR 추적 시스템을 XR 플러그인 프레임워크로 마이그레이션하십시오.
암시적 카메라 업데이트는 메인 카메라 게임 오브젝트의 로컬 트랜스폼을 프레임마다 두 번씩 업데이트하여, 메인 카메라 게임 오브젝트가 위치했던 계층 구조의 포지션, 크기 및 회전을 기준으로 이동하도록 만들었습니다.
이 시나리오에서는 다음의 두 가지 옵션으로 씬을 마이그레이션할 수 있습니다.
일반적으로 씬에 이 계층 구조를 사용하는 기능이 있는 경우 기존 계층 구조를 그대로 두는 것이 좋습니다. 설정이 비교적 간단한 경우라면 XR 릭으로 직접 마이그레이션할 수 있습니다.
이 방식은 기존 씬 계층 구조를 최소한으로 수정하여 Unity 내에서 추적을 활성화합니다. 또한 씬의 메인 카메라에 추적 포즈 드라이버를 추가합니다. 이렇게 하면 현재 게임 오브젝트 계층 구조를 필요로 하는 다른 모든 기능이 이전처럼 계속 작동합니다.
씬에서 메인 카메라를 찾으십시오.
XR 릭의 메인 카메라가 사용하는 것과 동일한 설정을 사용하여 추적 포즈 드라이버를 추가하십시오. 아래 스크린샷에는 이러한 설정이 나와 있습니다.
씬의 모든 메인 카메라에 대해 이 작업을 수행합니다. 씬 내에서 다른 기기를 추적해야 하는 경우 Tracked Pose Driver 설정에서 해당 사용 사례에 대한 올바른 옵션을 찾으십시오.
위의 XR용 Unity 프로젝트 설정 섹션을 참조하십시오.
이제 씬이 성공적으로 마이그레이션되었으므로 Play를 누르고 카메라의 시작 위치가 XR 플러그인 프레임워크로 마이그레이션하기 전과 같은지 확인합니다. 그렇지 않은 경우 아래의 문제 해결 섹션을 참조하십시오.
사용할 수 있는 계층 구조는 무한하기 때문에 Unity는 XR 릭을 사용하기 위해 현재 씬 계층 구조를 마이그레이션하는 특정 단계를 제공할 수 없습니다. XR 릭이 나타내는 의도를 이해하기 위한 레거시 입력 헬퍼 패키지 문서의 XR 릭 설명 섹션을 참조하십시오. 이를 통해 기존 계층 구조를 XR 릭 내의 개념에 매핑할 수 있습니다.
씬이 XR 관리를 사용하도록 설정하려면 위의 XR용 Unity 프로젝트 설정 섹션을 참조하십시오.
여전히 문제가 있는 경우 아래의 문제 해결 섹션을 참조하십시오.
문제 | 가능한 원인 |
---|---|
카메라가 씬에서 너무 높이 있음 | Camera Offset 컴포넌트의 Requested Tracking Mode가 올바르게 설정되었습니까?? Camera Y Offset이 너무 높게 설정되었습니까? |