제스처 - MRTK2

제스처는 사람의 손을 기반으로 하는 입력 이벤트입니다. MRTK에는 제스처 입력 이벤트를 발생시키는 두 가지 유형의 디바이스가 있습니다.

이러한 두 입력 소스는 제스처 설정 프로필을 사용하여 Unity의 터치 및 제스처 이벤트를 각각 MRTK의 입력 작업으로 변환합니다. 이 프로필은 입력 시스템 설정 프로필에서 찾을 수 있습니다.

제스처 프로필

제스처 이벤트

제스처 이벤트는 제스처 처리기 인터페이스 IMixedRealityGestureHandlerIMixedRealityGestureHandler<TYPE> 또는 ( 이벤트 처리기 테이블 참조) 중 하나를 구현하여 수신됩니다.

제스처 이벤트 처리기의 예제 구현은 장면 예제를 참조하세요.

제네릭 버전을 구현할 때 OnGestureCompletedOnGestureUpdated 이벤트는 다음 형식의 형식화된 데이터를 받을 수 있습니다.

  • Vector2 - 2D 위치 제스처. 터치 스크린에 의해 생성되어 에 대해 알릴 수 있습니다 deltaPosition.
  • Vector3 - 3D 위치 제스처. HoloLens에서 제작하여 다음을 알릴 수 있습니다.
  • Quaternion - 3D 회전 제스처. 사용자 지정 입력 원본에서 사용할 수 있지만 현재 기존 입력 원본에서 생성되지 않습니다.
  • MixedRealityPose - 결합된 3D 위치/회전 제스처입니다. 사용자 지정 입력 원본에서 사용할 수 있지만 현재 기존 입력 원본에서 생성되지 않습니다.

이벤트 순서

사용자 입력에 따라 두 가지 주요 이벤트 체인이 있습니다.

  • "보류":

    1. 길게 탭합니다.
      • 조작 시작
    2. HoldStartDuration을 넘어 탭합니다.
      • 보류 시작
    3. 릴리스 탭:
      • 전체 보류
      • 완전한 조작
  • "이동":

    1. 길게 탭합니다.
      • 조작 시작
    2. HoldStartDuration을 넘어 탭합니다.
      • 보류 시작
    3. NavigationStartThreshold를 넘어 손을 이동합니다.
      • 보류 취소
      • 탐색 시작
    4. 릴리스 탭:
      • 완전한 조작
      • 탐색 완료

예제 장면

HandInteractionGestureEventsExample(Assets/MRTK/Examples/Demos/HandTracking/Scenes) 장면에서는 Result 포인터를 사용하여 적중 위치에 개체를 생성하는 방법을 보여 줍니다.

GestureTester (Assets/MRTK/Examples/Demos/HandTracking/Script) 스크립트는 GameObjects를 통해 제스처 이벤트를 시각화하는 예제 구현입니다. 처리기 함수는 표시기 개체의 색을 변경하고 장면의 텍스트 개체에 마지막으로 기록된 이벤트를 표시합니다.