개체 조작자 - MRTK3
ObjectManipulator
를 사용하면 입력 디바이스 또는 형식을 사용하여 3D 공간에서 개체를 직관적으로 조작할 수 있습니다. XRI XRGrabInteractable
와 유사한 작업을 수행하지만 추가 기능 및 혼합 현실 관련 상호 작용을 제공합니다. 는 XRGrabInteractable
상호 작용기와 완벽하게 호환되지만(반대의 경우도 마찬가지임) 최상의 환경을 위해 구현을 사용하는 것이 좋습니다.
참고
ObjectManipulator
는 3D 개체를 직접 직관적으로 조작하기 위해 특별히 설계되었습니다. 슬라이더 또는 단추와 같은 일반적인 UI 상호 작용을 찾는 경우 슬라이더 및 단추 문서를 대신 참조하세요. 를 사용하여 ObjectManipulator
마이크로 상호 작용을 작성하지 않도록 합니다.
아키텍처
MRTK v2에서는 다양한 유형의 입력에 대한 복잡한 논리와 수학의 대부분이 자체에서 ObjectManipulator
처리되었습니다. 각 상호 작용 유형에 대해 별도의 codepath를 유지 관리해야 하므로 새로운 유형의 상호 작용을 도입할 때 유연성이 떨어지게 됩니다. MRTK3에서 상호 작용기는 특정 유형의 입력을 조작으로 변환하는 방법에 대한 세부 사항을 담당합니다. ObjectManipulator는 단순히 이러한 상호 작용기를 수신 대기하고 관련 변환을 개체에 적용합니다. 결과적으로 ObjectManipulator
MRTK3에서는 scope 훨씬 더 간단하고 작습니다.
상호 작용기가 연결 변환을 통해 통신하는 방법에 대한 설명은 상호 작용기 아키텍처를 참조하세요.
n
-handed 조작
ObjectManipulator
는 참여하는 상호 작용기를 지원하므로 1개, 2개, 심지어 손 조작에서 일반화 가능한 상호 작용 동작을 n
수행할 수 있습니다. 일반적으로 참여하는 모든 상호 작용자의 attachTransforms의 기하학적 중심은 다중 손 상호 작용에 사용됩니다. XRI 상호 작용 가능으로 잘 작동하는 연결 변환을 제출하는 모든 유형의 상호 작용기와 호환됩니다.
다중 손 조작을 허용하지 않으려면 XRI Selection Mode
를 로 Single
설정합니다. 상호 작용 가능 개체를 토글할 수 있는지 여부를 지정하는 데 사용되는 MRTKSelection Mode
와의 혼동을 방지하기 위해 검사기에서 이 속성을 보다 구체적인 이름으로 Multiselect Mode
별칭 지정합니다(자세한 설명은 단추 설명서 참조).
제약 조건
ObjectManipulator
는 제약 조건 API를 사용하여 조작을 제한합니다. 자세한 내용은 제약 조건 설명서를 참조하세요.
조작 논리 주입
개발자는 스크립트 자체를 서브클래싱하거나 수정할 필요 없이 의 ObjectManipulator
조작 동작을 사용자 지정할 수 있습니다. 새 를 작성하고 속성을 사용하여 ManipulationLogic<T>
검사기에서 형식을 ManipulationLogicTypes
지정하기만 하면됩니다.
마찬가지로 개발자는 의 새 구현 ITransformSmoothingLogic
을 작성하고 속성을 사용하여 검사기의 형식을 지정하여 다듬기 동작을 TransformSmoothingLogicType
사용자 지정할 수 있습니다.
중요
새로운 종류의 상호 작용 또는 입력 디바이스에 대한 새 조작 논리 형식을 작성하는 경우 잘못된 경로로 내려가는 것일 수 있습니다. 연결 변환이 제대로 작동하는 한 기존 조작 논리는 임의 입력 형식에 대해 작동해야 합니다. 대신 새 상호 작용기를 조정하거나 작성하는 것이 좋습니다. 잘 동작 하는 상호 작용 논리를 작성하는 방법에 대한 자세한 내용은 Interactor 아키텍처 설명서 및 상호 작용 가능 아키텍처 설명서를 참조하세요.