HoloLensの開発ツールであるMixedRealityToolkitではサンプルとして配置するだけで使用できるボタンやスライダーなど数多くのUIが同梱されています。
開発者はプレファブとして提供されているこれらをシーンに配置し、Eventを指定するだけでUIとして機能します。
ここではBlenderを用いてSF映画や近未来を描いたアニメ作品に登場するようなFUI(Fictional User Interface)を基にHoloLens用のオリジナルデザインのUIボードを作ります。
今回は第6回目です。 5~10つほど作品が完成したタイミングでGitHubにて公開します。
前回の記事
前回までで3DモデリングツールであるBlenderを用いてボタンのメッシュを作成し、メッシュの形状保持機能を用いたシェイプキーを作成してUnityへエクスポートしボタンとしての機能を設定しました。
今回はボタンを選択した時のアクションを設定してボタンとして完成させ、機能するかを確認します。
〇ボタンのイベント
ボタンの親オブジェクトに[Interactable]をアタッチします。
[Interactable]はそのオブジェクトのコライダーにカーソルが当たっているときに[AirTap]が行われると呼ばれるイベントを提供します。
[Input Actions]を[Select]にします。この設定はMixedRealityToolkitの[Provider]の[Input]で設定されているアクションキーに依存しています。
とくにProviderを独自で編集していない場合[Select]がAirTapの動作に対応しています。
[Events]の[+]アイコンをクリックしてイベントを追加します。
新しくイベントが追加されます。ボタンにAirTapが行われたときここに設定されたオブジェクト、もしくはオブジェクトのスクリプトに対してイベントを起こせます。 ここではSphereというUnityprimitive3Dオブジェクトをアタッチしました。
次に[No Function]をクリックし具体的な実行イベントを指定します。
Sphereが持つ機能でイベントとして扱えるものが表示されます。 今回はAirTapによってSphereが表示されるようにします。
呼ばれるFunctionを設定すると、型によって最終的にイベントによってどの状態に変化するのかを指定できます。
表示、非表示を行うGameObject.SetActiveはBool型であるためチェックボックスで指定します。
実行結果がこちらです。
以上でHoloLensで使えるオリジナルのボタンの完成です。