本日は MRTK の技術調査枠です。
MRTKを用いてHoloLensのタップイベントを検出する方法をまとめます。
以前、EventTrigger を用いて検出する方法をまとめましたが、今回は MRTK の IInputClickHandler を使う方法をまとめます。
bluebirdofoz.hatenablog.com
Unity で新規プロジェクトを作成したところから始めます。
環境は Unity 2017.4.3f1 と MRTK 2017.2.1.4 を利用します。
MRTK 2017.2.1.4 をインポートします。
Configure の Settings を全て反映した状態にします。
「MixedRealityCameraParent」と「InputManager」が設定されていれば、まずはシーンの設定は完了です。
次にタップイベントを検出するスクリプトを作成します。
IInputClickHandler を継承し、OnInputClicked 関数を作成します。
using System.Collections; using System.Collections.Generic; using UnityEngine; using HoloToolkit.Unity.InputModule; public class TapTrigger : MonoBehaviour, IInputClickHandler { public void OnInputClicked(InputClickedEventData eventData) { // タップ検出時の動作を記述する Debug.Log("Tap Event!"); } }
タップ操作を検出するオブジェクトとして、Cube オブジェクトを配置します。
Cube オブジェクトに先ほど作成したスクリプトをアタッチします。これで設定完了です。
試しにシーンの「再生」ボタンをクリックしてアプリケーションを起動してみます。
デフォルト設定では「Game」画面で「Spaceキー」を押しながら「マウスの左クリック」を行うと、右手のタップ操作をサンプルシーン内で行えます。
コンソールログを確認すると、タップイベントがキャッチされていることが分かります。