#Hololensアプリ開発に関するメモ(AirTapイベントの取得)
ホロレンズのアプリ開発を始めるにあたって、ネットでAirTapの取得方法を調べたが、最近
HoloTooKitの仕様が変更されたようで、AirTap時にOnSelect()が反応しなくなっている。
最新版(2017/5月現在)のHoloToolKitでAirTapイベントを取得するための方法を簡単にまとめた。
Unity向けHoloToolKitダウンロード先:
https://github.com/Microsoft/HoloToolkit-Unity
1.HoloToolKitをUnity Projectにインポート。Assets内のHoloLensCamera、Input->Prefabs->Cursor->CursorおよびInputManagerをHierarchyに配置。
(SpatialMappingを利用する場合はSpatialMapping->Prefabs->SpatialMappingも配置する)
2.以下の例のように、IInputClickHandlerの継承、Start()内のとメソッドOnInputClicked()を追加したコードを作成、Hierarchy内のゲームオブジェクトにアタッチする(HoloLensCameraなど)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using HoloToolkit.Unity.InputModule;
public class AirTapExample : MonoBehaviour,IInputClickHandler {
public Camera HololensCamara;
void Start () {
//AirTapを検出したとき、OnInputClickedが呼ばれる。
InputManager.Instance. PushFallbackInputHandler(gameObject);
}
void Update () {
}
//AirTapを検出したとき呼ばれるメソッド
void OnInputClicked(InputClickedEventData eventData){
//AirTap検出時の処理を記述
}
}
Start()内の記述がなくても、このスクリプトがアタッチされたゲームオブジェクトがAirTapされた場合、OnInputClickedメソッドが呼ばれる。
ゲームオブジェクトがタップされたかにかかわらず、メソッドを呼びたい場合、今回のサンプルコードのような記述になる。