MixedRealityToolKit(以下MRTK)にはExamplesというデモサンプル集が含まれています。
Examplesを理解すればMRTKの機能の使い方を学習することやノンコーディングでのアプリ開発が可能になります。
前回からUX/Interactables/InteractablesExamplesを見ています。
前回はCustom Object Examplesを見ていました。
〇Buttons
[Buttons]はMRTKで提供されているボタンプレファブの基本的な形です。どのような場面においても用いることができるシンプルなデザインが特徴です。
Buttonには[HoloLens 1 Style Buttons]と[HoloLens 2 Style]が存在します。
HoloLens 1st、HoloLens 2ではそれぞれ[HoloLens 1st =x86][HoloLens 2 =ARM]とアプリケーションの形が異なるのでたいていの場合Unityの[scene]でHoloLens 1、HoloLens 2とシーンを分けますが、HoloLens 1st 用のシーンにはHoloLens 1stのボタンを使用する必要があります。
●HoloLens 1st Style
MRTKの前形に当たる[HoloToolkit]から存在するスタイルのボタンです。
HoloLens 1stにはユーザーの手を識別するHandTracking機能はないので、ボタンを手で押すことはできませんが、カーソルを合わせることで選択可能状態であることを示すようにバックパネルが白く変化します。
●HoloLens 2 Style
HoloLens 2ではユーザーの手を認識するHandTracking機能が使用できるため、これを用いて[押す]ということが可能です。
触覚フィードバックは存在しないためユーザーがボタンを押したことをより理解しやすくする工夫としてCustom Object SampleのButtonのようにエッジのみが白い透明のオブジェクトがボタン前面に突き出ていて、これに触れることでユーザーにボタンを押したことを認識させています。
〇Buttonの中身
HoloLens 1stStyleButtonとHoloLens 2StyleButtonとでは、オブジェクトの構造だけではなくアタッチされているコンポーネントも異なります。
HoloLens 1stStyleでは今まで見てきたような[Interactable.cs]がアタッチされており、加えてHoloLens 2のgestureでも対応できるように[Touch Handler.cs]がアタッチされています。
このスタイルでは[Interactable.cs/Events/OnClick]にイベントを指定することでボタンをAirTapした時のイベントを指定で来ます。
HoloLens 2 StyleではHoloLens 1stに比べ多様化したgestureに対応するためにさらに複雑に設定することができます。
●[Touch Begin]ではユーザーの手がボタンに触れたときのイベントを指定できます。
●[Touch End]ではユーザーの手がボタンから離れたときのイベントを指定できます。
●[Button Pressed]ではユーザーの手が完全にボタンを押し込んだ際のイベントを指定できます。
●[Button Released]ではユーザーがボタンを押し込み、解放した際のイベントを指定できます。