Version: 2023.2
언어: 한국어
XR 씬 설정
XR 원점

XR 입력 옵션

XR 게임 또는 애플리케이션에서 입력을 처리하는 주요 옵션은 다음과 같습니다.

  • XR 인터랙션 툴킷
  • OpenXR 인터랙션 프로파일
  • 입력 시스템 또는 입력 관리자를 통한 “기존” 입력
  • XR.InputDevice 및 XR.Node API
  • 타사 입력 라이브러리

경우에 따라 이러한 옵션 중 두 가지 이상을 동시에 사용할 수도 있습니다.예를 들어 XR 인터랙션 툴킷을 사용하여 사용자가 환경의 오브젝트를 선택할 수 있고, 입력 시스템을 사용하여 일시 정지 기능을 컨트롤러 버튼에 바인딩하고, 컨트롤러 게임 오브젝트를 애니메이션화할 수 있도록 XR.Node API를 사용하여 하드웨어 상태를 읽을 수 있습니다.

참고:다양한 XR 기기와 컨트롤러를 지원하는 OpenXR 플러그인은 XR 입력 및 트래킹 데이터에 액세스할 수 있는 자체적인 추가 방법을 제공합니다.XR 인터랙션 툴킷, 입력 시스템, XR.InputDevice 및 XR.Node API를 계속 사용할 수 있습니다.(OpenXR 플러그인을 사용할 경우에는 레거시 입력 관리자가 지원되지 않습니다.)자세한 내용은 Unity OpenXR에서의 입력을 참조하십시오.

XR 인터랙션 툴킷

XR 인터랙션 툴킷은 입력 시스템과 기본 UnityEngine.XR API를 기반으로 빌드되어 XR 입력을 지원합니다.XR 입력을 처리하고 사용자 및 환경, 씬 UI 간의 상호작용을 정의하기 위한 거의 즉시 사용 가능한 컴포넌트 세트를 제공합니다.툴킷의 상호작용 시스템을 사용하지 않더라도 입력 컴포넌트를 시작점으로 사용하여 설정 작업을 줄일 수 있습니다.툴킷은 입력 처리에 대한 두 가지 기본 접근 방식을 제공합니다.

  • 행동 기반 입력은 유연성이 가장 뛰어나며 여러 컨트롤러 및 입력 체계를 쉽게 지원할 수 있습니다.XR 인터랙션 툴킷은 일반적인 XR 입력 요구 사항에 대한 행동을 정의합니다.이러한 행동을 사용하려면 XR Controller (Action-Based) 컴포넌트를 컨트롤러 게임 오브젝트에 추가합니다.이 컴포넌트는 XR 씬에 추가할 수 있는 XR Origin 설정에 이미 포함되어 있습니다(기기 기반 옵션을 선택하지 않은 경우).
  • 기기 기반 입력은 행동 기반 입력보다 더 간단하게 설정할 수 있지만, 유연성이 떨어집니다.XR 인터랙션 툴킷에서 기기 기반 입력을 사용하려면 XR Controller (Device-Based) 컴포넌트를 컨트롤러 게임 오브젝트에 추가합니다.이 컴포넌트는 GameObject > XR > Device-based > XR Origin 메뉴 커맨드로 씬에 추가할 때 XR Origin 설정에 이미 포함되어 있습니다.

입력 시스템 행동에 대한 자세한 내용은 행동을 참조하십시오.

팁:XR 인터랙션 툴킷에서 사용할 수 있는 스타터 에셋은 행동 기반 입력을 사용할 때 필요한 대부분의 반복되는 설정 작업을 없애주는 프리셋과 입력 행동을 제공합니다.

XR 인터랙션 툴킷은 다음과 같은 기본 상호작용을 정의합니다.

  • 선택: 환경에서 Interactables를 선택하기 위한 것입니다.
  • 활성화: 환경에서 Interactables를 활성화하기 위한 것입니다.
  • UI 누르기: UI에서 버튼과 같은 컨트롤을 누르기 위한 것입니다.
  • 회전 앵커: (X-레이 인터랙터를 사용하여) 멀리 떨어진 곳에 있는 오브젝트를 회전시키기 위한 것입니다.
  • 이동 앵커: (X-레이 인터랙터를 사용하여) 멀리 떨어진 곳에 있는 오브젝트를 이동시키기 위한 것입니다.

XR 인터랙션 툴킷은 이러한 상호작용을 추가 컴포넌트와 함께 사용하여 사용자가 환경과 상호작용할 수 있도록 합니다.예를 들어 GrabInteractable 컴포넌트를 오브젝트에 추가하면 사용자는 선택을 트리거하여 잡을 수 있습니다.기본적으로 선택은 XR 컨트롤러의 잡기 버튼에 바인딩되지만, 원하는 대로 바인딩을 변경할 수 있습니다.툴킷에 정의된 행동 및 바인딩과 함께 고유의 행동 및 바인딩을 사용할 수도 있습니다.

입력 시스템 또는 입력 관리자

다른 게임 컨트롤러에 액세스하는 것과 동일한 방식으로 버튼 및 조이스틱과 같은 XR 컨트롤러의 컨트롤에 액세스할 수 있습니다.데이터 추적에 액세스하려면 코드의 XR.InputTracking API를 사용하십시오.입력 시스템 TrackedPoseDriver 컴포넌트를 사용하여 HMD 또는 컨트롤러와 같은 추적되는 기기로 게임 오브젝트를 컨트롤할 수 있습니다.입력 시스템을 사용하지 않는 경우 Legacy Input Helpers 패키지에서 TrackedPoseDriver 컴포넌트를 사용할 수도 있습니다.

참고:OpenXR 플러그인을 사용하는 경우 입력 시스템을 사용해야 합니다.입력 관리자는 지원되지 않습니다.

XR 핸드 트래킹 입력

XR Hands 패키지는 이를 지원하는 XR 기기에서 핸드 트래킹 데이터에 대한 액세스를 제공합니다.이 데이터에 액세스하려면 OpenXR 버전 1.7과 같이 핸드 트래킹을 지원하도록 업데이트된 XR 공급자 플러그인도 사용해야 합니다.

XR Hands 패키지는 다음을 제공합니다.

  • XR 기기가 핸드 데이터를 Unity 앱에 전송할 수 있도록 하는 XRHandTrackingSubsystem
  • Unity 앱에서 데이터에 액세스하는 데 사용할 수 있는 핸드 트래킹 API
  • 핸드 트래킹 데이터에 대한 OpenXR 입력 바인딩과 함께 제스처 조준 시스템을 제공하는 OpenXR Meta Aim Hand 기능 확장에 대한 지원

XR 입력 API

XR 입력 API는 XR 입력에 대한 직접적인 액세스를 제공합니다.이 API를 사용하면 연결된 XR 기기를 찾고 트래킹 데이터와 입력 하드웨어의 상태를 읽을 수 있습니다.

XR 입력 API에 대한 자세한 내용은 Unity XR 입력을 참조하십시오.

타사 입력 API

기기 제조업체 및 기타 타사에서는 Unity에서 제공하는 API 대신 추가로 사용할 수 있는 자체 입력 및 상호작용 API를 제공하는 경우가 많습니다.

XR 씬 설정
XR 원점