HoloToolKit5.5系列之手勢識別單擊事件封裝

HoloToolKit無法通過父物體集中處理子物體的點擊等事件,本文介紹了如何封裝Hololens點擊事件在父物體上集中處理,大概步驟為:

  • 拖入HoloLensCamera預設體
  • 拖入InputManager預設體
  • 拖入Cursor預設體
  • 創建畫布
  • 創建兩個Button

1-3. 拖入三個預設體

Paste_Image.png

4. 創建畫布

創建完畫布后,把 Render Mode 設為 World Space

Paste_Image.png

添加CanvasCtrl.cs腳本

using UnityEngine;

public class CanvasCtrl : MonoBehaviour
{
    private TapEvent m_Button1;
    private TapEvent m_Button2;
    private void Awake()
    {
        m_Button1 = transform.FindChild("Button1").GetComponent<TapEvent>();
        m_Button2 = transform.FindChild("Button2").GetComponent<TapEvent>();
        m_Button1.hololensOnClick.AddListener(OnButton1Click);
        m_Button2.hololensOnClick.AddListener(OnButton2Click);
    }

    private void OnButton1Click()
    {
        Debug.Log("OnButton1Click");
    }

    private void OnButton2Click()
    {
        Debug.Log("OnButton2Click");
    }
}     

5. 創建兩個Button

Paste_Image.png

兩個按鈕都添加TapEvent.cs腳本

using UnityEngine;
using UnityEngine.Events;
using HoloToolkit.Unity.InputModule;
public class TapEvent : MonoBehaviour,IInputClickHandler
{
    [SerializeField]
    private UnityEvent HololensOnClick = new UnityEvent();

    public UnityEvent hololensOnClick
    {
        get { return HololensOnClick; }
        set { hololensOnClick = value; }
    }

    public void OnInputClicked(InputEventData eventData)
    {
        HololensOnClick.Invoke();
    }
}

測試結果

Paste_Image.png

如喜歡該簡博,請加至收藏夾

作者 @Zajanmy
2017 年 01月 19日

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容