SpatialGestureRecognizer 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
손, 모션 컨트롤러 및 시스템 음성 명령의 사용자 상호 작용을 해석하여 사용자가 응시 또는 모션 컨트롤러의 포인팅 광선을 사용하여 대상으로 지정하는 공간 제스처 이벤트를 표시합니다.
public ref class SpatialGestureRecognizer sealed
/// [Windows.Foundation.Metadata.Activatable(Windows.UI.Input.Spatial.ISpatialGestureRecognizerFactory, 131072, "Windows.Foundation.UniversalApiContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 131072)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class SpatialGestureRecognizer final
[Windows.Foundation.Metadata.Activatable(typeof(Windows.UI.Input.Spatial.ISpatialGestureRecognizerFactory), 131072, "Windows.Foundation.UniversalApiContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 131072)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class SpatialGestureRecognizer
function SpatialGestureRecognizer(settings)
Public NotInheritable Class SpatialGestureRecognizer
- 상속
- 특성
Windows 요구 사항
디바이스 패밀리 |
Windows 10 (10.0.10586.0 - for Xbox, see UWP features that aren't yet supported on Xbox에서 도입되었습니다.)
|
API contract |
Windows.Foundation.UniversalApiContract (v2.0에서 도입되었습니다.)
|
설명
공간 제스처는 HoloLens와 같은 Mixed Reality 헤드셋에 대한 입력의 핵심 형태입니다. SpatialInteractionManager에서 홀로그램의 SpatialGestureRecognizer로 상호 작용을 라우팅하여 앱은 손, 음성 및 모션 컨트롤러에서 Tap, Hold, Manipulation 및 Navigation 이벤트를 균일하게 검색할 수 있습니다.
게임 패드, 키보드 또는 마우스의 입력에 대한 공간 제스처는 검색되지 않습니다.
SpatialGestureRecognizer는 요청하는 제스처 집합 간의 최소한의 명확성만 수행합니다. 예를 들어 탭만 요청하면 사용자가 원하는 만큼 손가락을 누를 수 있으며 탭은 계속 발생합니다. 길게 누르기를 모두 요청하는 경우 손가락을 누른 후 약 1초 후에 제스처가 보류로 승격되고 탭이 더 이상 발생하지 않습니다.
SpatialGestureRecognizer를 사용하려면 SpatialInteractionManager의 InteractionDetected 이벤트를 처리하고 거기에 노출된 SpatialPointerPose 를 가져옵니다. 사용자가 상호 작용할 대상을 확인하기 위해 이 포즈에서 사용자의 응시 광선을 사용하여 사용자 주변의 홀로그램 및 표면 메시와 교차합니다. 그런 다음, 이벤트 인수의 SpatialInteraction 을 CaptureInteraction 메서드를 사용하여 대상 홀로그램의 SpatialGestureRecognizer로 라우팅합니다. 이렇게 하면 생성 시 또는 TrySetGestureSettings 에서 해당 인식기에서 설정된 SpatialGestureSettings에 따라 상호 작용을 해석하기 시작합니다.
손 제스처, 모션 컨트롤러 누르기 또는 음성 상호 작용과 같은 공간 상호 작용을 대상으로 하는 경우 앱은 상호 작용의 SpatialInteractionSource 특성에 따라 상호 작용의 SpatialPointerPose에서 사용할 수 있는 포인팅 광선을 선택해야 합니다.
- 상호 작용 원본이 포인팅을 지원하지 않는 경우(IsPointingSupported 가 false임) 앱은 Head 속성을 통해 사용할 수 있는 사용자의 응시에 따라 대상으로 지정해야 합니다.
- 상호 작용 원본이 포인팅을 지원하는 경우(IsPointingSupported 가 true임) 앱은 대신 TryGetInteractionSourcePose 메서드를 통해 사용할 수 있는 원본의 포인터 포즈를 기반으로 대상을 지정할 수 있습니다.
그런 다음 앱은 선택한 포인팅 광선을 자체 홀로그램 또는 공간 매핑 메시와 교차하여 커서를 렌더링하고 사용자가 상호 작용할 대상을 결정해야 합니다.
응시 및 커밋 입력 모델, 특히 HoloLens(1세대)를 사용하는 애플리케이션의 경우 SpatialGestureRecognizer를 사용하여 'select' 이벤트 위에 빌드된 복합 제스처를 사용하도록 설정할 수 있습니다. SpatialInteractionManager에서 홀로그램의 SpatialGestureRecognizer로 상호 작용을 라우팅하여 앱은 누름 및 릴리스를 수동으로 처리하지 않고도 손, 음성 및 공간 입력 디바이스에서 탭, 홀드, 조작 및 탐색 이벤트를 균일하게 검색할 수 있습니다.
생성자
SpatialGestureRecognizer(SpatialGestureSettings) |
지정된 제스처 설정을 사용하여 새 SpatialGestureRecognizer 를 초기화합니다. |
속성
GestureSettings |
이 인식기에서 현재 SpatialGestureSettings 를 가져옵니다. |
메서드
CancelPendingGestures() |
진행 중인 모든 제스처를 취소하고 캡처된 상호 작용을 중단합니다. |
CaptureInteraction(SpatialInteraction) |
지정된 상호 작용의 일부로 발생하는 모든 입력 이벤트를 추적합니다. |
TrySetGestureSettings(SpatialGestureSettings) |
이 인식기에서 제스처 설정을 변경하려고 시도합니다. |
이벤트
HoldCanceled |
보류 제스처가 취소될 때 발생합니다. |
HoldCompleted |
보류 제스처가 완료되면 발생합니다. |
HoldStarted |
상호 작용이 보류 제스처가 될 때 발생합니다. |
ManipulationCanceled |
조작 제스처가 취소될 때 발생합니다. |
ManipulationCompleted |
조작 제스처가 완료되면 발생합니다. |
ManipulationStarted |
조작이 조작 제스처가 될 때 발생합니다. |
ManipulationUpdated |
손 이동으로 인해 조작 제스처가 업데이트되면 발생합니다. |
NavigationCanceled |
탐색 제스처가 취소될 때 발생합니다. |
NavigationCompleted |
탐색 제스처가 완료되면 발생합니다. |
NavigationStarted |
상호 작용이 탐색 제스처가 될 때 발생합니다. |
NavigationUpdated |
손 또는 모션 컨트롤러 이동으로 인해 탐색 제스처가 업데이트되면 발생합니다. |
RecognitionEnded |
제스처의 완료 또는 취소로 인해 제스처 인식이 종료될 때 발생합니다(마지막으로 발생하는 이벤트임). |
RecognitionStarted |
제스처 인식이 시작될 때 발생합니다(가장 먼저 발생하는 이벤트임). |
Tapped |
Tap 또는 DoubleTap 제스처가 인식될 때 발생합니다. |