OpenVR에 의해 지원되는 추적 컨트롤러에 대한 Unity 에디터의 네이티브 지원을 돕기 위해, Unity VR 서브시스템은 VR 컨트롤러 입력을 별도의 조이스틱으로 제공합니다. 해당 축 및 버튼 값에는 UnityEngine.Input 클래스를 통해 액세스할 수 있습니다.
Unity 에디터는 OpenVR의 컨트롤러 추상화를 사용하여 하드웨어에 관계없는 방식으로(즉, 특정 하드웨어를 지칭하지는 않지만 일반적인 용어를 사용하여) 축 및 버튼 상태를 제공합니다. 하지만 분명한 것은 아래 제시된 축 및 버튼 매핑은 지원되는 두 가지 컨트롤러 타입은 HTC Vive 컨트롤러와 오큘러스 터치 컨트롤러를 가르킵니다.
올바르게 설정되고 연결된 경우, 오큘러스 터치 컨트롤러 한 페어와 HTC Vive 컨트롤러 한 페어는 UnityEngine.Input.GetJoystickNames()에 의해 반환되는 리스트에 OpenVR Controller - Left 및 OpenVR Controller - Right 로 표시됩니다. 사용 가능한 컨트롤러는 SteamVR 상태 창에 초록색으로 강조 표시됩니다.
Unity 스크립트 코드를 사용하여 조이스틱 이름 리스트에 컨트롤러의 이름이 있는지 주기적으로 확인하여 해당 컨트롤러의 유효성을 테스트할 수 있습니다. 컨트롤러가 꺼져 있거나 배터리가 분리된 경우 UnityEngine.Input.GetJoystickNames()에 의해 반환되는 리스트에서 컨트롤러 이름이 빈 문자열로 대체됩니다. 컨트롤러를 다시 켜면 해당 컨트롤러의 이름이 반환된 조이스틱 리스트에 표시됩니다.
Vive Controller Hardware Feature | Touch Controller Hardware Feature | 인터랙션 타입 | Unity 버튼 ID | Unity 축 ID | Unity 축 값 범위 |
---|---|---|---|---|---|
왼쪽 컨트롤러 메뉴 버튼(1) | Button.Three | 누름 | 2 | ||
오른쪽 컨트롤러 메뉴 버튼(1) | Button.One | 누름 | 0 | ||
왼쪽 컨트롤러 트랙패드 (2) | Button.PrimaryThumbstick | 누름 | 8 | ||
오른쪽 컨트롤러 트랙패드 (2) | Button.SecondaryThumbstick | 누름 | 9 | ||
왼쪽 컨트롤러 트랙패드 (2) | Button.PrimaryThumbstick | 터치 | 16 | ||
오른쪽 컨트롤러 트랙패드 (2) | Button.SecondaryThumbstick | 터치 | 17 | ||
왼쪽 컨트롤러 트랙패드 (2) | Axis2D.PrimaryThumbstick | 수평 이동 | 1 | –1.0–1.0 | |
왼쪽 컨트롤러 트랙패드 (2) | Axis2D.PrimaryThumbstick | 수직 이동 | 2 | –1.0–1.0 | |
오른쪽 컨트롤러 트랙패드 (2) | Axis2D.SecondaryThumbstick | 수평 이동 | 4 | –1.0–1.0 | |
오른쪽 컨트롤러 트랙패드 (2) | Axis2D.SecondaryThumbstick | 수직 이동 | 5 | –1.0–1.0 | |
왼쪽 컨트롤러 트리거 (7) | Axis1D.PrimaryIndexTrigger | 터치 | 14 | ||
오른쪽 컨트롤러 트리거 (7) | Axis1D.SecondaryIndexTrigger | 터치 | 15 | ||
왼쪽 컨트롤러 트리거 (7) | Axis1D.PrimaryIndexTrigger | 꾹 누름 | 9 | 0.0–1.0 | |
오른쪽 컨트롤러 트리거 (7) | Axis1D.SecondaryIndexTrigger | 꾹 누름 | 10 | 0.0–1.0 | |
왼쪽 컨트롤러 그립 버튼(8) | Axis1D.PrimaryHandTrigger | 꾹 누름 | 11 | 0.0–1.0 | |
오른쪽 컨트롤러 그립 버튼(8) | Axis1D.SecondaryHandTrigger | 꾹 누름 | 12 | 0.0–1.0 |
참고: