HoloLensの開発効率化 Unity上でAir Tapを確認する方法
お疲れ様です。ZuQ9->Nnです。
HoloLensの開発をするうえで、いくつか不便な点があります。
その一つがAir Tap
Holographic Academy - Microsoft Developers
Holograms 101E
ではUnityEngine.VR.WSA.Input GestureRecognizer を利用する方法が紹介されています。
しかし、これは、Unity上で反応せず、
いちいちbuildしてHoloLens Emulatorを起動して確認しなけらばなりません。
HoloLens Emulatorはかなり起動が遅く、確認、デバックが、かなり辛いです。
そこでなるべくUnity上で確認したい欲求がでてきます。
Microsoftが提供してくれている
HoloToolkit-Unityには便利なアセットが多く存在します。
UnityにHoloToolkit-Unityをコピーし、プロジェクトの設定を行います。
UnityのProjectから
HoloToolkit > Input > Prefabs
InputManagerのAssetをHierarchyに追加
これでUnityを実行してみると、薄っすら指のアイコンが確認できます。
Shiftキーを押すと反転し色がつくのでわかりやすくなります。
Shiftキーを押したままマウスのクリックを行うと
指のアイコンが動きTapされていることがわかりやすくなります。
調べたところ、この指のアイコンはUnity Editorでしか表示されないようになっていて
HoloLens Emulatorでは表示されません。
またHoloLens EmulatorではShiftキーを押したままマウスのクリックでAir Tapは反応せず
Air Tapは、マウスの右クリックになりますのでご注意ください。
コードでAir Tapをハンドリングするには
Input > Tests > ScriptsのInputHandleCallbackFX.csが参考になります。
using UnityEngine;
namespace HoloToolkit.Unity.InputModule.Tests
{
public class InputHandleCallbackFX : MonoBehaviour, IInputClickHandler
{
[SerializeField]
private ParticleSystem particles = null;
private void Start()
{
InputManager.Instance.PushFallbackInputHandler(gameObject);
}
public void OnInputClicked(InputClickedEventData eventData)
{
particles.transform.position = GazeManager.Instance.HitPosition;
particles.Emit(60);
}
}
}
こちらは、Gazeの位置でAir Tapすると、パーティクルが表示されるようになっています。
札束のやつも基本これです。HoloToolkit-Unityは、結構頻繁にアップデートをされているので
今後、このやり方ではできなくなるかもしれませんが、
今のところ積極的に使っても大丈夫だと思います。