MRが楽しい

MRやVRについて学習したことを書き残す

hololensでパネルUIにカーソルを表示する

本日はおいかけっこアプリの改修枠です。
以前追加した吹出型のパネルUIに、カーソルを表示します。

まず単純にカーソルを表示させる方法についてHoloToolKitのInputManagerを利用します。
HoloToolKit/Input/Prefabs/Cursor配下にあるCursor.prefabをHierarchy内にドラッグします。
f:id:bluebirdofoz:20170808023049j:plain

HoloToolKit/Input/Script/Gaze配下にあるGazeManager.csをアタッチします。
f:id:bluebirdofoz:20170808023108j:plain

今回はお試しのため、Cursorオブジェクトに追加していますが。
GazeManager.csはシングルトンなので別途Manager用オブジェクトを作成して、そこにアタッチした方がよいです。

試しに動かしてみると、カーソルが表示されました。
f:id:bluebirdofoz:20170808023119j:plain

しかし、このままだとカーソルが常に表示された状態となり、カーソルを利用しないときには見ずらいです。
吹出型のパネルUIを見たときのみ、カーソルが表示されてほしいところです。

こちらもHoloToolKitで提供されている機能を利用して設定可能です。
まず、GazeManagerのRaycastLayerMasksを開きます。
f:id:bluebirdofoz:20170808023130j:plain

デフォルトでは複数のレイヤが衝突判定先として指定されいるので、UI のみを選択します。
f:id:bluebirdofoz:20170808023141j:plain

衝突判定を行いたいオブジェクトのレイヤを UI に変更します。
f:id:bluebirdofoz:20170808023154j:plain

これで指定のオブジェクトに対してのみ、カーソルが有効になります。
f:id:bluebirdofoz:20170808023203j:plain
レイヤを用いるので、あるオブジェクトの中に存在する、特定のオブジェクトにのみ判定を行うといったことも可能です。