トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

MRTKのボタンを使ってみる

これを使ってみる

f:id:bibinbaleo:20200416113029p:plain

追記:全然見てなかったけどドキュメントあった。

microsoft.github.io

サンプルシーン

Exampleのunitypackageを入れる

Examples>Demos>UX>PressedButton>ScenesのPressableButtonExampleにボタンのサンプルシーンがある

f:id:bibinbaleo:20200416114727p:plain

Canvasは要らない。ボタンの親が空のゲームオブジェクトになっていて、Z=1ぐらいに配置されてた。

f:id:bibinbaleo:20200416115237p:plain

 

GameObjectは32*32だけどボタンには40*40って書いてある。たぶん40*40が正しい

f:id:bibinbaleo:20200416113035p:plain

プレハブ

SDK>Features>UX>Interactable>prefabsの中にある

f:id:bibinbaleo:20200416113039p:plain

こんな感じでいろいろある! 

f:id:bibinbaleo:20200416113647p:plain

SimpleButtonはスタートメニューのアプリボタンかな?

f:id:bibinbaleo:20200416173146p:plain

ちょっと違うかも

f:id:bibinbaleo:20200416173242p:plain

 

私の好きなToggleSeitchもあった

f:id:bibinbaleo:20200416113032p:plain

SDK>Features>UX>prefabsの中にもいろいろプレハブがある。

Tooltipや

f:id:bibinbaleo:20200416113650p:plain

パネル

f:id:bibinbaleo:20200416113643p:plain

ボタンの構造

uGUIベース

「PressableButtonHololens2UnityUI」はCanvasの下に置くタイプのボタンprefab

他にもUinyってつくのが3つある。

f:id:bibinbaleo:20200417170027p:plain

f:id:bibinbaleo:20200417170124p:plain

コライダーベース

PressableButtonHoloLens2」が基本的なボタン

f:id:bibinbaleo:20200416115240p:plain

大きさは3.2cm*3.2cm

f:id:bibinbaleo:20200416155546p:plain

 

 

テキスト

IconAndTextの中にTextMeshProがあるのでそこを変えれば文字が変わる

f:id:bibinbaleo:20200416115644p:plain

f:id:bibinbaleo:20200416115742p:plain

MRTKは基本的にuGUIのテキストじゃなくてTextMeshProを使ってる気がする

アイコン

アイコンはマテリアルにpngを差し込む方式

f:id:bibinbaleo:20200416115820p:plain

あらかじめ用意されているアイコンはこんな感じ

f:id:bibinbaleo:20200416155828p:plain


自分で作った。正方形にしないとダメ

f:id:bibinbaleo:20200416155825p:plain

追記

ドキュメントによるとButtonConfigHelperでアイコンとテキストをチェンジできるらしいけど、そんなコンポーネントないよ??検索してもないし、プレハブにもついてないような・・・

 

f:id:bibinbaleo:20200417164804p:plain

Button | Mixed Reality Toolkit Documentation

 

まだdevelopブランチにある機能で、ReleaseのUnitypackageには入ってない。

詳しくはこちら。

MRTKのアップデート情報発表のメモ - トマシープが学ぶ

イベント

普通のボタンみたいにイベントがつけられる

f:id:bibinbaleo:20200416155821p:plain

2020/04/07追記

このEventsの下のReceivesで「押したとき」「離したとき」を別々に設定できる

入門チュートリアル - 3. ユーザー インターフェイスの作成と Mixed Reality Toolkit の構成 - Mixed Reality | Microsoft Docs

f:id:bibinbaleo:20200427143714p:plain

詳しくはチュートリアルに書いてある

入門チュートリアル - 3. ユーザー インターフェイスの作成と Mixed Reality Toolkit の構成 - Mixed Reality | Microsoft Docs

 

Holographic Remotingでテスト

remoteでテストした!

bibinbaleo.hatenablog.com

 ポインターでは押せた。

f:id:bibinbaleo:20200416155834p:plain

Remoteだと直接手で押すことはできないのかな?

エラー

Editorでプレイするとエラーが出てる。

Failed to get IHolographicCameraRenderingParameters from main camera for updating rendering parameter.

f:id:bibinbaleo:20200416155842p:plain

ハンドトラッキングしてる時に出るって。気にしなくていいらしい!

リモーティングを利用中にコンソールに「Failed to get IHolographicCameraRenderingParameters from main camera for updating rendering parameter」のエラーが表示されることがある。
ハンドトラッキング中にこの現象が発生することはあるが動作には支障はない。
Githubで追跡調査対象。

Mixed Reality Toolkit V2.2.0 のリリースノートを整理した - Qiita

ビルドエラー

VisualStudioでビルドするときもエラー出てできなかった。

f:id:bibinbaleo:20200416163828p:plain

 MSB3030 PerceptionRemotingPlugin.dllが見つからなかったためコピーできません。

 

ここに同じエラーの人がいた

stackoverflow.com

Answerを見ると

UnityData.vcxitemsを開き、HolographicAppRemoting.dll、UnityRemotingWMR.dll、およびPerceptionDevice.dllに関する記述を手動で削除することで、この問題を回避できました。

~~~

Unityを介してホログラフィックリモーティングを有効にするために、エディターは仮想現実サポートを有効にし、UnityからVSソリューションを構築するときに、PerceptionDevice.dll、HolographicAppRemoting.dllおよびUnityRemotingWMR.dllをUnityData.vcxitemsに自動的に追加するWindows Mixed Realityを追加するように強制します

バーチャルリアリティのサポートを無効にすると、これらのエントリがUnityData.vcxitemsから削除され、現在は問題なく機能しているようです。

 XRSettingのWSAHolographic~に間違ってチェック入れたせいだった。ボタン関係なかった

f:id:bibinbaleo:20200416165433p:plain

できた!

無事ビルドできた。

ビルドしたらちゃんと手で押せた。

f:id:bibinbaleo:20200416172603p:plain

押したらCube消えるようにした。

f:id:bibinbaleo:20200416172559p:plain

光が当たらない状態で、上のボタンがボタンだと分かるんだろうか?

記号が大事になりそう。

最後に

こんな平行な写真撮りたい。

f:id:bibinbaleo:20200416163831p:plain