오큘러스 입력
트랜스폼(Transform)

OpenVR 컨트롤러 입력(Input for OpenVR controllers)

OpenVR에 의해 지원되는 추적 컨트롤러에 대한 Unity 에디터의 네이티브 지원을 돕기 위해, Unity VR 서브시스템은 VR 컨트롤러 입력을 별도의 조이스틱으로 제공합니다. 해당 축 및 버튼 값에는 UnityEngine.Input 클래스를 통해 액세스할 수 있습니다.

Unity 에디터는 OpenVR의 컨트롤러 추상화를 사용하여 하드웨어에 관계없는 방식으로(즉, 특정 하드웨어를 지칭하지는 않지만 일반적인 용어를 사용하여) 축 및 버튼 상태를 제공합니다. 하지만 분명한 것은 아래 제시된 축 및 버튼 매핑은 지원되는 두 가지 컨트롤러 타입은 HTC Vive 컨트롤러와 오큘러스 터치 컨트롤러를 가르킵니다.

명명 규칙 및 감지

올바르게 설정되고 연결된 경우, 오큘러스 터치 컨트롤러 한 페어와 HTC Vive 컨트롤러 한 페어는 UnityEngine.Input.GetJoystickNames()에 의해 반환되는 리스트에 OpenVR Controller - LeftOpenVR Controller - Right 로 표시됩니다. 사용 가능한 컨트롤러는 SteamVR 상태 창에 초록색으로 강조 표시됩니다.

Unity 스크립트 코드를 사용하여 조이스틱 이름 리스트에 컨트롤러의 이름이 있는지 주기적으로 확인하여 해당 컨트롤러의 유효성을 테스트할 수 있습니다. 컨트롤러가 꺼져 있거나 배터리가 분리된 경우 UnityEngine.Input.GetJoystickNames()에 의해 반환되는 리스트에서 컨트롤러 이름이 빈 문자열로 대체됩니다. 컨트롤러를 다시 켜면 해당 컨트롤러의 이름이 반환된 조이스틱 리스트에 표시됩니다.

Unity 입력 시스템 매핑

Vive 컨트롤러 다이어그램

(이미지 제공: developer.viveport.com)
(이미지 제공: developer.viveport.com)

오큘러스(Oculus) 터치 컨트롤러 다이어그램

(이미지 제공: developer.oculus.com)
(이미지 제공: developer.oculus.com)
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

참고:

  • 터치 이벤트는 플랫폼마다 다릅니다.
    • HTC Vive 컨트롤러의 트리거와 관련된 터치 이벤트는 사용자가 트리커를 압착하기 시작한 후에만 생성됩니다.
    • 오큘러스 터치 트리거의 터치 이벤트는 터치가 감지될 때 발생하고, 압착할 필요가 없습니다.
  • 그립 트리거는 플랫폼마다 다릅니다.
    • HTC Vive 컨트롤러에는 양쪽에 그립 버튼이 있지만 모두 동일한 축에 매핑됩니다. 값은 누르지 않은 경우 0.0이고 누른 경우 1.0이며, 가능한 중간 값은 없습니다.
    • 오큘러스 터치 컨트롤러의 그립은 범위가 0.01.0인 아날로그 트리거입니다.
  • 위 표에 나열되어 있지 않은 하드웨어 기능은 OpenVR API를 통해 노출되지 않으므로 Unity의 입력 시스템을 통해 노출되지 않습니다.
오큘러스 입력
트랜스폼(Transform)