HoloLens로 더블 탭 감지

6289 단어 HoloLensUnity

소개



3월 초부터 인턴에서 주식회사 유메미( htps //w w. 유메미. 이. jp/그럼 ) 에서 HoloLens 의 연구 개발을 하고 있는 근대생의 요시입니다.
국내에서 지난 1월부터 제공을 개시한 MicroSoft제 MR 디바이스의 HoloLens에 대한 기사를 써 갑니다.

하는 것



더블 탭 감지

HoloLens는 싱글 탭만. 같아서 생각하고 있었습니다만, 실은 매우 간단하게 더블 탭을 취할 수 있는 것을 알았으므로 해설합니다.

해설



문서를 보면 한눈에 알 수 있습니다. tapCount에서 탭 수를 취할 수 있으므로, 이 카운트가 1이면 싱글 탭, 2이면 더블 탭이 됩니다.

htps : // / cs. 글쎄, ty3d. 이 m / Sc 리 pt 레후 렌세 / VR. W. 림프 t. 게이스 트레코 g에 꼭 r. 가까이에 ゔ ㄱ t로 ぇ가. HTML

구현 예



관련 부분 이외 모든 것을 생략하고 있으므로주의하시기 바랍니다.

DoubleTap.cs
void Awake() {
    NavigationRecognizer = new GestureRecognizer();

    NavigationRecognizer.SetRecognizableGestures(GestureSettings.Tap);

    NavigationRecognizer.TappedEvent += NavigationRecognizer_TappedEvent;
}

private void NavigationRecognizer_TappedEvent(InteractionSourceKind source, int tapCount, Ray ray) {
    if (tapCount == 1) {
        System.Diagnostics.Debug.WriteLine("Single tap");
    } else if (tapCount == 2) {
        System.Diagnostics.Debug.WriteLine("Double tap");
    }
}


추가: 4/13/2017
구버전의 HoloToolkit을 눈치채지 않고 사용하고 있어 투고시 몰랐습니다만, 이하의 방법도 사용할 수 있습니다.

IInputClickHandler.cs
using HoloToolkit.Unity.InputModule;
using UnityEngine;

class SomeObject: MonoBehaviour, IInputClickHandler {
    private void Start() {
        InputManager.Instance.AddGlobalListener(gameObject);
    }

    private void OnDestroy() {
        InputManager.Instance.RemoveGlobalListener(gameObject);
    }

    // MARK: - IInputClickHandler
    public void OnInputClicked(InputClickedEventData eventData) {
        if (eventData.TapCount == 1) {
            System.Diagnostics.Debug.WriteLine("Single tap");
        } else if (eventData.TapCount == 2) {
            System.Diagnostics.Debug.WriteLine("Double tap");
        }
    }
}

좋은 웹페이지 즐겨찾기