昨日は一足先に音声認識を行いましたが、hololensではタップ操作も可能です。
という訳で、下記ブログで紹介されているチュートリアルの続きです。
・HOLOLENS ホログラムを動かす GESTURES
https://azure-recipe.kc-cloud.jp/2016/12/hololens-tutorial3/
修正を行い、アプリを実行すると、下記のようなタップ操作が可能となります。
ボールに注視して空中でタップ操作を行うと…
ボールが落ちました。
さて、今回のプロジェクトで重要なのは以下のコード。
・UnityEngine.VRで提供されるジェスチャーの監視クラス
GestureRecognizer recognizer;
・タップイベントが発生したとき、注目中のオブジェクトのOnSelect関数を実行するよう設定します。
recognizer.TappedEvent += (source, tapCount, ray) => { // Send an OnSelect message to the focused object and its ancestors. if (FocusedObject != null) { FocusedObject.SendMessageUpwards("OnSelect"); } };
・チュートリアル#2で用いたポインタ方法を用いて、今度は注目中のオブジェクトを取得しています。
var headPosition = Camera.main.transform.position; var gazeDirection = Camera.main.transform.forward; RaycastHit hitInfo; if (Physics.Raycast(headPosition, gazeDirection, out hitInfo)) { // If the raycast hit a hologram, use that as the focused object. FocusedObject = hitInfo.collider.gameObject; }
・ボールに重力属性を与え、床に落ちる動作が起こるようにします
rigidbody.collisionDetectionMode = CollisionDetectionMode.Continuous;
今回はGestureRecognizerを利用しています。
UnityEngine.VRというネームスペースからも分かる通り、これはVR向けに提供されるインタフェースですね。
だんだんとMRらしくなってきました。