XR 게임 또는 애플리케이션에서 입력을 처리하는 주요 옵션은 다음과 같습니다.
경우에 따라 이러한 옵션 중 두 가지 이상을 동시에 사용할 수도 있습니다. 예를 들어 XR 인터랙션 툴킷을 사용하여 사용자가 환경의 오브젝트를 선택하도록 할 수 있고, 입력 시스템을 사용하여 일시 정지 기능을 컨트롤러 버튼에 바인딩하고, 컨트롤러 게임 오브젝트를 애니메이션화할 수 있도록 XR.Node API를 사용하여 하드웨어 상태를 읽을 수 있습니다.
참고: 다양한 XR 기기와 컨트롤러를 지원하는 OpenXR 플러그인은 자체적으로 XR 입력 및 추적 데이터에 액세스할 수 있는 추가 방법을 제공합니다. XR 인터랙션 툴킷, 입력 시스템 또는 XR.InputDevice 및 XR.Node API를 계속 사용할 수 있습니다. OpenXR 플러그인을 사용할 때는 레거시 입력 관리자가 지원되지 않습니다. 자세한 내용은 Unity OpenXR의 입력을 참조하십시오.
XR 인터랙션 툴킷은 입력 시스템과 기본 UnityEngine.XR API를 기반으로 XR 입력 및 상호 작용을 지원합니다. XR 입력을 처리하고 사용자와 환경, 씬__ UI__(사용자 인터페이스) 사용자가 애플리케이션과 상호 작용하도록 해 줍니다. Unity는 현재 3개의 UI 시스템을 지원합니다. 자세한 정보
See in Glossary 간의 상호 작용을 정의하는 거의 즉시 사용 가능한 컴포넌트 세트를 제공합니다.
XR 인터랙션 툴킷은 다음을 제공합니다.
모든 게임 컨트롤러와 동일한 방식으로 버튼과 조이스틱과 같은 XR 컨트롤러의 컨트롤에 액세스할 수 있습니다. 추적 데이터에 액세스하려면 코드에서 XR.InputTracking API를 사용합니다. 입력 시스템 TrackedPoseDriver 컴포넌트를 사용하여 HMD 또는 컨트롤러와 같은 추적 기기로 게임 오브젝트를 제어할 수도 있습니다. 입력 시스템을 사용하지 않는 경우 Legacy Input Helpers 패키지에서도 TrackedPoseDriver 컴포넌트를 사용할 수 있습니다.
참고: OpenXR 플러그인을 사용하는 경우 입력 시스템을 사용해야 합니다. 입력 관리자는 지원되지 않습니다.
XR Hands 패키지는 지원하는 XR 기기에서 손 추적 데이터에 대한 액세스를 제공합니다. 이 데이터에 액세스하려면 손 추적을 지원하도록 업데이트된 XR 공급자 플러그인(예: OpenXR 버전 1.12)도 사용해야 합니다.
XR Hands 패키지는 다음을 제공합니다.
visionOS의 입력 옵션은 앱이 창 모드, 혼합 현실 모드 또는 가상 현실 모드에서 실행되는지에 따라 다릅니다.
창 모드에서는 사용자의 시선과 핀치 제스처가 운영체제에서 터치 이벤트로 변환됩니다. 앱은 원시 입력 데이터에 액세스할 수 없으며, visionOS는 최대 두 개의 터치 포인트를 보고합니다.
혼합 현실 모드에서 입력 옵션은 앱이 다른 앱과 공유된 공간에서 실행되는지, 아니면 몰입도 높은 공간에서 실행되는지에 따라 달라집니다. 공유 공간에서의 상황은 창 모드의 앱과 비슷하며, 운영체제는 사용자의 시선과 손의 움직임을 터치 제스처로 변환합니다. 이 경우 Spatial Pointer Device를 사용하여 2D가 아닌 3D 터치 데이터에 액세스할 수 있습니다. 몰입도 높은 공간에서는 제스처를 시작할 때 사용자 시선의 3D 광선 원점 및 방향에 액세스할 수 있습니다. 또한 머리 및 손 추적, 평면 감지, 씬 재구성 메시, 이미지 추적과 같은 ARKit 데이터에 액세스할 수 있습니다.
가상 현실 모드에서는 머리 및 손 추적, 평면 감지, 씬 재구성 메시, 이미지 추적과 같은 ARKit 데이터에 액세스할 수 있습니다. (Spatial Pointer Device 또는 기타 PolySpatial 전용 컴포넌트에는 액세스할 수 없습니다.)
자세한 내용은 PolySpatial visionOS: 입력을 참조하십시오.
XR 입력 API는 XR 입력에 대한 직접적인 액세스를 제공합니다. 이 API를 사용하면 연결된 XR 기기를 찾고 추적 데이터와 입력 하드웨어의 상태를 읽을 수 있습니다.
XR 입력 API에 대한 자세한 내용은 Unity XR 입력을 참조하십시오.
기기 제조업체 및 기타 타사에서는 Unity에서 제공하는 API 대신 추가로 사용할 수 있는 자체 입력 및 상호작용 API를 제공하는 경우가 많습니다.