Skip to content

ウィンドウ表示と入力

作った画面は、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 をオフにします。表示はそのままで、見るだけのミラーになります。