XR 게임 또는 애플리케이션에서 입력을 처리하는 주요 옵션은 다음과 같습니다.
경우에 따라 이러한 옵션 중 두 가지 이상을 동시에 사용할 수도 있습니다.예를 들어 XR 인터랙션 툴킷을 사용하여 사용자가 환경의 오브젝트를 선택할 수 있고, 입력 시스템을 사용하여 일시 정지 기능을 컨트롤러 버튼에 바인딩하고, 컨트롤러 게임 오브젝트를 애니메이션화할 수 있도록 XR.Node API를 사용하여 하드웨어 상태를 읽을 수 있습니다.
참고:다양한 XR 기기와 컨트롤러를 지원하는 OpenXR 플러그인은 XR 입력 및 트래킹 데이터에 액세스할 수 있는 자체적인 추가 방법을 제공합니다.XR 인터랙션 툴킷, 입력 시스템, XR.InputDevice 및 XR.Node API를 계속 사용할 수 있습니다.(OpenXR 플러그인을 사용할 경우에는 레거시 입력 관리자가 지원되지 않습니다.)자세한 내용은 Unity OpenXR에서의 입력을 참조하십시오.
XR 인터랙션 툴킷은 입력 시스템과 기본 UnityEngine.XR API를 기반으로 빌드되어 XR 입력을 지원합니다.XR 입력을 처리하고 사용자 및 환경, 씬 UI 간의 상호작용을 정의하기 위한 거의 즉시 사용 가능한 컴포넌트 세트를 제공합니다.툴킷의 상호작용 시스템을 사용하지 않더라도 입력 컴포넌트를 시작점으로 사용하여 설정 작업을 줄일 수 있습니다.툴킷은 입력 처리에 대한 두 가지 기본 접근 방식을 제공합니다.
입력 시스템 행동에 대한 자세한 내용은 행동을 참조하십시오.
팁:XR 인터랙션 툴킷에서 사용할 수 있는 스타터 에셋은 행동 기반 입력을 사용할 때 필요한 대부분의 반복되는 설정 작업을 없애주는 프리셋과 입력 행동을 제공합니다.
XR 인터랙션 툴킷은 다음과 같은 기본 상호작용을 정의합니다.
XR 인터랙션 툴킷은 이러한 상호작용을 추가 컴포넌트와 함께 사용하여 사용자가 환경과 상호작용할 수 있도록 합니다.예를 들어 GrabInteractable 컴포넌트를 오브젝트에 추가하면 사용자는 선택을 트리거하여 잡을 수 있습니다.기본적으로 선택은 XR 컨트롤러의 잡기 버튼에 바인딩되지만, 원하는 대로 바인딩을 변경할 수 있습니다.툴킷에 정의된 행동 및 바인딩과 함께 고유의 행동 및 바인딩을 사용할 수도 있습니다.
다른 게임 컨트롤러에 액세스하는 것과 동일한 방식으로 버튼 및 조이스틱과 같은 XR 컨트롤러의 컨트롤에 액세스할 수 있습니다.데이터 추적에 액세스하려면 코드의 XR.InputTracking API를 사용하십시오.입력 시스템 TrackedPoseDriver 컴포넌트를 사용하여 HMD 또는 컨트롤러와 같은 추적되는 기기로 게임 오브젝트를 컨트롤할 수 있습니다.입력 시스템을 사용하지 않는 경우 Legacy Input Helpers 패키지에서 TrackedPoseDriver 컴포넌트를 사용할 수도 있습니다.
참고:OpenXR 플러그인을 사용하는 경우 입력 시스템을 사용해야 합니다.입력 관리자는 지원되지 않습니다.
XR Hands 패키지는 이를 지원하는 XR 기기에서 핸드 트래킹 데이터에 대한 액세스를 제공합니다.이 데이터에 액세스하려면 OpenXR 버전 1.7과 같이 핸드 트래킹을 지원하도록 업데이트된 XR 공급자 플러그인도 사용해야 합니다.
XR Hands 패키지는 다음을 제공합니다.
XR 입력 API는 XR 입력에 대한 직접적인 액세스를 제공합니다.이 API를 사용하면 연결된 XR 기기를 찾고 트래킹 데이터와 입력 하드웨어의 상태를 읽을 수 있습니다.
XR 입력 API에 대한 자세한 내용은 Unity XR 입력을 참조하십시오.
기기 제조업체 및 기타 타사에서는 Unity에서 제공하는 API 대신 추가로 사용할 수 있는 자체 입력 및 상호작용 API를 제공하는 경우가 많습니다.
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.