조작 처리기 - MRTK2

조작 처리기

ManipulationHandler 스크립트를 사용하면 한 두 개의 손을 사용하여 개체를 이동 가능하고 확장 가능하며 회전할 수 있습니다. 조작은 특정 종류의 변환만 허용하도록 제한할 수 있습니다. 이 스크립트는 HoloLens 2 관절식 손 입력, 손 광선, HoloLens(1세대) 제스처 입력 및 몰입형 헤드셋 모션 컨트롤러 입력을 비롯한 다양한 유형의 입력에서 작동합니다.

조작 처리기를 사용하는 방법

GameObject에 ManipulationHandler 스크립트 구성 요소를 추가합니다. 또한 개체에 충돌기를 추가하여 잡기 가능한 범위와 일치해야 합니다.

개체가 거의 관절식 손 입력에 응답하도록 하려면 스크립트도 추가 NearInteractionGrabbable 합니다.

Unity 편집기에서 조작 처리기 사용

검사기 속성

조작 처리기 구조

호스트 변환 끌 변환입니다. 기본값은 구성 요소의 개체입니다.

조작 유형 한 손, 두 손 또는 둘 다를 사용하여 개체를 조작할 수 있는지 여부를 지정합니다.

  • 한 손만
  • 양손만
  • 한 손과 두 손

양손 조작 유형

  • 크기 조정: 크기 조정만 허용됩니다.
  • 회전: 회전만 허용됩니다.
  • 크기 조정 이동: 이동 및 크기 조정이 허용됩니다.
  • 회전 이동: 이동 및 회전이 허용됩니다.
  • 배율 회전: 회전 및 크기 조정이 허용됩니다.
  • 회전 배율 이동: 이동, 회전 및 크기 조정이 허용됩니다.

조작 처리기

원거리 조작 허용 포인터와의 원거리 상호 작용을 사용하여 조작을 수행할 수 있는지 여부를 지정합니다.

한 손 회전 모드 근처 개체가 한 손/컨트롤러 가까이에서 잡히는 경우의 동작 방식을 지정합니다.

한 손 회전 모드 멀리 원거리에서 한 손/컨트롤러로 개체를 잡을 때 개체가 동작하는 방식을 지정합니다.

한 손 회전 모드 옵션 개체가 한 손으로 잡히는 경우 회전하는 방법을 지정합니다.

  • 원래 회전 유지 관리: 이동 중인 개체를 회전하지 않습니다.
  • 사용자에 대한 회전 유지 관리: X/Y 축에 대한 개체의 원래 회전을 사용자에게 유지 관리합니다.
  • 중력 맞춤 사용자에 대한 회전 유지 관리: 개체의 원래 회전을 사용자에게 유지 관리하지만 개체를 세로로 만듭니다. 경계 컨트롤이 있는 개체에 유용합니다.
  • 얼굴 사용자: 개체가 항상 사용자를 향하도록 합니다. 슬레이트/패널에 유용합니다.
  • 사용자와 마주 보기: 개체가 항상 사용자와 떨어져 있는지 확인합니다. 반대 방향으로 구성된 슬레이트/패널에 유용합니다.
  • 개체 중심 회전: 관절형 손/컨트롤러에 대해서만 작동합니다. 손/컨트롤러의 회전을 사용하여 개체를 회전하되, 개체 중심점을 기준으로 합니다. 원거리에서 검사하는 데 유용합니다.
  • 잡기 지점 회전: 관절형 손/컨트롤러에 대해서만 작동합니다. 개체를 손/컨트롤러가 잡고 있는 것처럼 회전합니다. 검사에 유용합니다.

릴리스 동작 개체가 해제되면 개체의 물리적 이동 동작을 지정합니다. 해당 개체에 강체 구성 요소가 있어야 합니다.

  • Nothing
  • 모두
  • 속도 유지
  • Angular 속도 유지

회전에 대한 제약 조건 개체가 상호 작용할 때 회전할 축을 지정합니다.

  • 없음
  • X축만
  • Y축만
  • Z축만

제약 조건에 로컬 공간 사용 세계 공간 축 또는 로컬 공간 축과 관련하여 제약 조건 적용 간에 전환할 토글입니다.

이동 제약 조건

  • 없음
  • 머리로부터의 거리 수정

활성 평활화 다듬기가 활성 상태인지 여부를 지정합니다.

양 한 손 다듬기 이동, 배율, 회전에 적용할 평활의 양입니다. 0의 평활화는 다듬기 없음을 의미합니다. 최대 값은 값이 변경되지 않음을 의미합니다.

이벤트

조작 처리기는 다음 이벤트를 제공합니다.

  • OnManipulationStarted: 조작이 시작될 때 발생합니다.
  • OnManipulationEnded: 조작이 종료될 때 발생합니다.
  • OnHoverStarted: 손/컨트롤러가 조작 가능한 마우스를 가까이 또는 멀리 가리키면 발생합니다.
  • OnHoverEnded: 손/컨트롤러가 조작 가능한 마우스를 거의 또는 멀리 가리키지 않으면 발생합니다.