Appearance
ウィンドウ表示と入力
作った画面は、VR のダッシュボードとアプリのウィンドウの両方に表示されます。
仕組み
UI は1セットしか存在しません。それを描いた1枚のテクスチャを、ダッシュボードとウィンドウの2か所に映しています。
なので「ウィンドウで変えた値がダッシュボードに反映される」のではなく、そもそも同じものを見ている状態です。DropDown も InputField も Toggle も、どちらから操作しても常に一致します。同期処理はありません。
ウィンドウでの操作
ウィンドウにはマウスでそのまま触れます。クリック、ホバーの色変化、Dropdown の展開、すべて動きます。
InputField は、クリックして選んだあと物理キーボードで入力できます。日本語入力もそのまま使えます。
ウィンドウとテクスチャの縦横比が違う場合は、余白付きで画面の中央に表示されます。余白の色はリグの中の Background で変えられます。
ダッシュボードでの操作
レーザーポインタがマウスの代わりになります。操作できる範囲はウィンドウと同じです。
InputField をレーザーで選ぶと、SteamVR のキーボードが自動で表示されます。
- 打った文字はその場で InputField に反映されていきます
- キーボードの Done で確定します
- 確定せずにキーボードを閉じると、元の文字列に戻ります
- 日本語などの文字も化けずに入ります
ダッシュボード側だけ隠す
ウィンドウは常に表示されますが、ダッシュボードのタブは出し入れできます。
- 生成時: ウィザードの「ダッシュボードに表示」のチェック
- 実行中: DashboardCanvas の Show In Dashboard を切り替え(インスペクターからもスクリプトからも)
csharp
dashboard.showInDashboard = false; // タブが消える。ウィンドウはそのまま動き続ける
dashboard.showInDashboard = true; // タブが戻るタブを隠している間もアプリは動いていて、ウィンドウでの操作も普通にできます。
ウィンドウのミラーを無くしたいとき
ウィザードで「ウィンドウにも表示」のチェックを外して生成するか、生成済みのリグから WindowMirror コンポーネントと Window Mirror Canvas を削除してください。以前と同じ「ダッシュボード専用」の構成になります。
マウス操作だけを止めたい場合は、WindowMirror の Enable Mouse Input をオフにします。表示はそのままで、見るだけのミラーになります。