개체 조작자 - MRTK3

개체 조작자

ObjectManipulator를 사용하면 모든 입력 디바이스 또는 양식을 사용하여 3D 공간에서 개체를 직관적으로 조작할 수 있습니다. XRI XRGrabInteractable과 유사한 작업을 수행하지만 추가 기능과 혼합 현실 관련 상호 작용을 제공합니다. XRGrabInteractable은 상호 작용기와 완벽하게 호환되지만(반대의 경우도 마찬가지) 최상의 환경을 위해 구현을 사용하는 것이 좋습니다.

참고

ObjectManipulator는 3D 개체를 직접적이고 직관적으로 조작하기 위해 특별히 설계되었습니다. 슬라이더나 단추 같은 일반적인 UI 상호 작용을 찾고 있다면 대신 슬라이더단추 문서를 참조하세요. 마이크로 상호 작용을 작성하기 위해 ObjectManipulator를 사용하지 마세요.

Architecture

MRTK v2에서 다양한 형식의 입력에 대한 대부분의 복잡한 논리 및 수학은 ObjectManipulator 자체에서 처리되었습니다. 각 상호 작용 형식에 대해 별도의 코드 경로를 유지해야 했기 때문에 새로운 형식의 상호 작용을 도입할 때 유연성이 떨어졌습니다. MRTK3에서 상호 작용기는 특정 형식의 입력이 조작으로 변환되는 방식에 대한 세부 사항을 담당합니다. ObjectManipulator는 단순히 이러한 상호 작용기를 수신하고 관련 변환을 개체에 적용합니다. 결과적으로 MRTK3의 ObjectManipulator는 범위가 훨씬 더 간단하고 작습니다. 상호 작용기가 연결 변환을 통해 통신하는 방법에 대한 설명은 상호 작용기 아키텍처를 참조하세요.

n 손으로 조작

ObjectManipulator는 참여하는 상호 작용기를 원하는 수만큼 지원하므로 한 손, 두 손, 심지어 n 손 조작에 걸쳐 일반화 가능한 상호 작용 동작을 허용합니다. 일반적으로 참여하는 모든 상호 작용기의 attachTransforms의 기하학적 중심은 여러 손으로 조작하는 데 사용됩니다. XRI 상호 작용 가능 개체로서 올바르게 작동하는 연결 변환을 제출하는 모든 형식의 상호 작용기와 호환됩니다.

여러 손으로 조작을 허용하지 않으려면 XRI Selection ModeSingle로 설정합니다. 상호 작용 가능 개체를 토글할 수 있는지 여부를 지정하는 데 사용되는 MRTK Selection Mode와 혼동을 피하기 위해 검사기에서 이 속성의 별칭을 보다 구체적인 Multiselect Mode로 지정합니다(자세한 설명은 단추 설명서 참조).

다중 선택 모드

제약 조건

ObjectManipulator는 Constraints API를 사용하여 조작을 제한합니다. 자세한 내용은 제약 조건 설명서를 참조하세요.

조작 논리 삽입

개발자는 스크립트 자체를 하위 클래스화하거나 수정하지 않고도 ObjectManipulator의 조작 동작을 사용자 지정할 수 있습니다. 새 ManipulationLogic<T>를 작성하고 검사기에서 형식을 지정하기만 하면 됩니다.

중요

새로운 종류의 상호 작용 또는 입력 디바이스에 대한 새로운 조작 논리 형식을 작성하는 자신을 발견했다면 아마도 잘못된 경로로 가고 있는 것입니다. 연결 변환이 제대로 작동하는 한 기존 조작 논리는 임의의 입력 형식에 대해 작동해야 합니다. 대신 새 상호 작용기를 조정하거나 작성하는 것을 고려합니다. 올바르게 작동하는 상호 작용 논리를 작성하는 방법에 대한 자세한 내용은 상호 작용기 아키텍처 설명서상호 작용 가능 아키텍처 설명서를 참조하세요.