MRが楽しい

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

MRTKのシーンでハンド操作可能なScrollViewを設定する

本日は MRTK の小ネタ枠です。
MRTKのシーンでハンド操作可能なScrollViewを設定する手順を記事にします。
f:id:bluebirdofoz:20210205230014j:plain

Canvasの配置と設定

MRTK 2.5をインポートして基本設定を行ったサンプルプロジェクトに Canvas オブジェクトを配置します。
Canvas オブジェクトはメニューから[GameObject -> UI -> Canvas]で追加します。
f:id:bluebirdofoz:20210205230039j:plain

追加された Canvas オブジェクトの Inspector ビューを開きます。
[Canvas]コンポーネントの[Convert to MRTK Canvas]ボタンをクリックします。
f:id:bluebirdofoz:20210205230050j:plain

Canvas の[Render Mode]が[World Space]に切り替わります。
[Rect Transform]を調整してシーンの適当な位置に Canvas を配置します。
f:id:bluebirdofoz:20210205230103j:plain

タップ操作でスクロール操作ができるようにしたいので、更に[Add NearInteractionTouchableUnityUI]ボタンをクリックします。
f:id:bluebirdofoz:20210205230113j:plain

[NearInteractionTouchableUnityUI]コンポーネントが追加されます。
[Event To Receive]を[Pointer]に変更します。
f:id:bluebirdofoz:20210205230122j:plain

これで Canvas の配置と設定は完了です。
f:id:bluebirdofoz:20210205230136j:plain

ScrollViewオブジェクトの配置と設定

次に Scroll Viewオブジェクトを配置します。
Canvas オブジェクトを選択した状態で、メニューから[GameObject -> UI -> Scroll View]で追加します。
f:id:bluebirdofoz:20210205230148j:plain

Scroll View オブジェクトが作成されました。
大きさと配置を Canvas オブジェクトに合わせて調整します。
f:id:bluebirdofoz:20210205230159j:plain

スクロールするコンテンツとしてテキスト文字列のコンテンツを作成します。
Content オブジェクトは Scroll View / Viewport 配下にあります。
f:id:bluebirdofoz:20210205230210j:plain

スクロールするコンテンツをサイズを設定します。
今回は縦スクロールのみをさせたいので、[Anchor Presets]に横方向のみ stretch を設定して幅を合わせるようにします。
f:id:bluebirdofoz:20210205230320j:plain

更にコンテンツの縦方向の大きさを[Height]で設定しておきます。
スクロールさせるため、Scroll View の縦サイズより大きな値を設定します。
f:id:bluebirdofoz:20210205230332j:plain

文字を表示する Text オブジェクトを追加します。
Content オブジェクトを選択した状態で、メニューから[GameObject -> UI -> Text]で追加します。
f:id:bluebirdofoz:20210205230343j:plain

Text オブジェクトが配置されたら、[Rect Transform]を設定して Text オブジェクトを Content オブジェクトに合わせます。
更にスクロールが分かるように改行したテキスト文字列を入力します。
f:id:bluebirdofoz:20210205230354j:plain

動作確認

これで設定完了です。
シーンを再生して動作を確認してみます。
f:id:bluebirdofoz:20210205230404j:plain

ハンドジェスチャーの操作で Scroll View をスクロールすることができれば成功です。
f:id:bluebirdofoz:20210205230413j:plain