여기에서는 가상 현실, 증강 현실 및 혼합 현실 애플리케이션에서 상호작용하기 위해 사용되는 모든 Unity 지원 입력 기기에 대한 정보를 제공합니다.
레거시 입력 축과 버튼 인덱스를 통해 XR 입력 기능에 액세스할 수 있습니다. 이 표에는 각 플랫폼에서 매핑되는 기능에 대한 내용이 요약되어 있습니다. 버튼 및 조이스틱 축을 사용하는 방법에 관한 자세한 내용은 기존의 게임 입력 문서를 참조하십시오.
기능 사용 | 기능 유형 | 레거시 입력 인덱스[L/R] | WMR | Oculus | GearVR | Daydream | OpenVR (Full) | Vive | OpenVR (Oculus) | OpenVR (WMR) |
---|---|---|---|---|---|---|---|---|---|---|
Primary2DAxis | 2D 축 | [(1,2)/(4,5)] | 조이스틱 | 조이스틱 | 조이스틱 | 터치패드 | [트랙패드/조이스틱] | 트랙패드 | 조이스틱 | 조이스틱 |
트리거 | 축 | [9/10] | 트리거 | 트리거 | 트리거 | 트리거 | 트리거 | 트리거 | 트리거 | 트리거 |
그립 | 축 | [11/12] | 그립 | 그립 | 그립 | 그립 | 그립 | 그립 | 그립 | |
IndexTouch | 축 | [13/14] | 검지 - 인접 터치 | |||||||
ThumbTouch | 축 | [15/16] | 엄지 - 인접 터치 | |||||||
Secondary2DAxis | 2DAxis | [(17,18)/(19,20)] | 터치패드 | 터치패드 | ||||||
IndexFinger | 축 | [21/22] | 검지 | |||||||
MiddleFinger | 축 | [23/24] | 중지 | |||||||
RingFinger | 축 | [25/26] | 약지 | |||||||
PinkyFinger | 축 | [27/28] | 소지 | |||||||
CombinedTrigger | 축 | [3/3] | CombinedTrigger | 연결 트리거 | 연결 트리거 | 연결 트리거 | 연결 트리거 | 연결 트리거 | ||
PrimaryButton | 버튼 | [2/0] | [X/A] | 앱 | 기본 | 기본 | 기본 [Y/B] | 메뉴 | ||
PrimaryTouch | 버튼 | [12/10] | [X/A] - 터치 | |||||||
SecondaryButton | 버튼 | [3/1] | [Y/B] | 대체 | 대체 [B/A] | |||||
SecondaryTouch | 버튼 | [13/11] | [Y/B] - 터치 | |||||||
GripButton | 버튼 | [4/5] | 그립 - 누르기 | 그립 - 누르기 | 그립 - 누르기 | 그립 - 누르기 | 그립 - 누르기 | 그립 - 누르기 | 그립 | |
TriggerButton | 버튼 | [14/15] | 트리거 - 누르기 | 검지 - 터치 | 트리거 - 누르기 | 트리거 - 누르기 | 트리거 - 누르기 | 트리거 - 누르기 | 트리거 - 터치 | 트리거 - 누르기 |
MenuButton | 버튼 | [6/7] | 메뉴 | 시작 (6) | ||||||
Primary2DAxisClick | 버튼 | [8/9] | 조이스틱 - 클릭 | 썸스틱 - 클릭 | 터치패드 - 클릭 | 터치패드 - 클릭 | StickOrPad - 누르기 | StickOrPad - 누르기 | StickOrPad - 누르기 | 터치패드 - 클릭 |
Primary2DAxisTouch | 버튼 | [16/17] | 터치패드 - 클릭 | 썸스틱 - 터치 | 터치패드 - 터치 | 터치패드 - 터치 | StickOrPad - 터치 | StickOrPad - 터치 | StickOrPad - 터치 | 터치패드 - 터치 |
Thumbrest | 버튼 | [18/19] | 터치패드 - 터치 | ThumbRest - 터치 |
위 표에 나온 적절한 레거시 입력 인덱스를 사용하면 레거시 입력 시스템을 통해 XR 입력 기능을 폴링할 수 있습니다. Edit > Settings > Input 에서 축 매핑을 생성한 후 입력 이름의 적절한 매핑을 플랫폼 기기 기능의 축 인덱스에 추가하십시오. 버튼 또는 축 값은 현재 매핑된 축 또는 버튼 이름을 전달한 후 Input.GetAxis 또는 Input.GetButton를 사용하여 가져올 수 있습니다.
현재 추적된 XRNode에 대한 입력 기기를 검색해서 가져올 수 있습니다. 추적된 XRNode에 유효한 입력 기기가 있으면 Unity는 햅틱 데이터를 해당 입력 기기로 라우팅하여 착용자에게 몰입도 높은 피드백을 제공합니다. Unity는 진폭과 지속시간이 포함된 간단한 임펄스 또는 데이터 버퍼로 햅틱 데이터를 전달할 수 있습니다.
모든 플랫폼이 모든 햅틱 유형을 지원하지만, 햅틱 기능에 대해 기기에 쿼리할 수 있습니다. 다음 예시는 오른손잡이용 입력 기기를 가져온 후 해당 기기가 햅틱 기능을 지원하는지 확인하고, 지원하는 경우 임펄스를 재생합니다.
InputDevice device = InputDevices.GetDeviceAtXRNode(XRNode.RightHand);
HapticCapabilities capabilities;
if(device.TryGetHapticCapabilities(out capabilities))
{
if(capabilities.supportsImpulse)
{
uint channel = 0;
float amplitude = 0.5f;
float duration = 1.0f;
device.SendHapticImpulse(channel, amplitude, duration);
}
}
참고: 이 코드 예시는 UnityEngine.XR
네임스페이스를 사용합니다.