之前簡單介紹了單擊手勢(shì)的功能實(shí)現(xiàn),這篇文章詳細(xì)分析 HoloToolKit5.5 對(duì)單擊手勢(shì)的支持達(dá)到什么程度,還有哪些不足,以及針對(duì)這些進(jìn)行改進(jìn),下列操作緊接上文:
1. 創(chuàng)建Cube2并添加腳本Tap2

Paste_Image.png
Tap2.cs
using UnityEngine;
//引入Holotoolkit輸入模塊命名空間
using HoloToolkit.Unity.InputModule;
public class Tap2 : MonoBehaviour, IInputClickHandler
{
/// <summary>
/// 繼承IInputClickHandler接口實(shí)現(xiàn)OnInputClicked方法
/// </summary>
/// <param name="eventData"></param>
public void OnInputClicked(InputEventData eventData)
{
//單擊成功顯示Cube2 log
Debug.Log("Cube2");
}
}
注意,兩個(gè)Cube要與攝像頭的位置足夠近,否則觸發(fā)不了事件。因?yàn)镚azeManager凝視的最大距離較短,除非修改它的值

Paste_Image.png
此時(shí)分別點(diǎn)擊兩個(gè)Cube,結(jié)果不出意外,分別打印出Log

Paste_Image.png
2. 移除Cube2上的Tap2腳本并設(shè)為Cube的子物體

Paste_Image.png
此時(shí)單擊Cube2觸發(fā)Cube綁定的Tap腳本中點(diǎn)擊方法

Paste_Image.png
從以上我們可以看出,當(dāng)進(jìn)行單擊操作后,HoloToolKit的事件系統(tǒng)會(huì)遍歷凝視對(duì)象包括它的子物體,