夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

HoloLensで使えるオリジナルのUIを作成する  テンキー その1 レイアウト、アイコン

本日はオリジナルのUI枠です。

本ブログではHoloLensで使用するためのオリジナルのUIを作成してGitHubで公開しています。

github.com

今回アプリケーションでテンキーを使用したかったので簡単に作成しました。

〇テンキー

f:id:Holomoto-Sumire:20200628180446j:plain

テンキーは数字を打つためのキーボードです。

●レイアウト

今回はPressableButtonをベースに作成しています。

f:id:Holomoto-Sumire:20200628180626j:plain

一般的なテンキーは1~9のキーが3×3のレイアウトで並んでいます。

[TenKey]という名前を付けた空オブジェクトを作成し、その中でPressableButtonを複製し9つにします。

f:id:Holomoto-Sumire:20200628181000j:plain

[TenKey]オブジェクトに[TileGridObjectCollection]コンポーネントをアタッチします。

このコンポーネントは子オブジェクトのレイアウトを指定した設定に合わせて自動で行ってくれます。

f:id:Holomoto-Sumire:20200628181139j:plain

[TileGridObjectCollection]コンポーネントの[Columns]の数値を[3]に変更します。 

f:id:Holomoto-Sumire:20200628181426j:plain

これで3つずつ並ぶレイアウトになります。

f:id:Holomoto-Sumire:20200628181619j:plain

次に[Gutters]の値を0,0,0、[Leyout Direction]のx,yの値を0.5、-0.5に設定します。 これでテンキーとしてのキー同士のレイアウトが完了しました。

f:id:Holomoto-Sumire:20200628181826j:plain

レイアウトが完了したらTenKeyオブジェクトから[TileGridObjectCollection]コンポーネントを削除します。

●アイコン

次に一つ一つのキーを設定していきます。

PressableButtonの名前をKey1~9に変更します。

f:id:Holomoto-Sumire:20200628182356j:plain

ここからアイコンを変更していきます。 プロジェクトウィンドウで右クリックして[Create]>[MixedRealityToolKit]>[IconSet]を選択してアイコンセットを追加します。

f:id:Holomoto-Sumire:20200628182510j:plain

これはMRTKで提供される機能でアイコンのためのプリセットになります。名前は[TenKey]と名付けました。

f:id:Holomoto-Sumire:20200628182820j:plain

これを[Key1]と名付けたPressableButtonの[Button Config Helper]の[Icon]>[IconSet]に[TenKey]IconSetをセットします。

f:id:Holomoto-Sumire:20200628183116j:plain

TenKeyIconSetにはまだ何も設定されていないため最初はエラーが出ています。

TenKeyIconSetの[Quad Icons]に画像を設定することでアイコンとして使用できるようになります。 この画像に関しては次回以降作り方を載せます。

f:id:Holomoto-Sumire:20200628183330j:plain

TenKeyIconSetに画像が設定されることでPressableButtonの[Button Config Helper][Icon]>[IconSet]に設定した画像が表示されます。

f:id:Holomoto-Sumire:20200628183535j:plain

Key1ボタンの場合1の画像を選択します。1の画像をクリックするだけでボタンのアイコンに適応されます。

f:id:Holomoto-Sumire:20200628183706j:plain

同様の作業をすべてのキーに行います。

f:id:Holomoto-Sumire:20200628183900j:plain

これでテンキーの基本的な見た目が完成しました。

次回以降機能を実装します。