またまた小ネタです。
SteamVRを使ったPC用のアプリで、非VRシーン(文字入力が必要なUIなどを想定)と、VRのシーンを切り替える方法です。
まず、Player SettingsのXR Settingsで、「None」を追加して一番上にしておきます。
この状態だと、非VRの画面でアプリが開始します。
そしてシーンに切り替え後に、XRSettings.LoadDeviceByName を使用します。
(別にシーンを切り替えなくても、同じシーンでVRと非VRの切り替えができます)
IEnumerator LoadDevice(string newDevice) { if (String.Compare(XRSettings.loadedDeviceName, newDevice, true) != 0) { XRSettings.LoadDeviceByName(newDevice); yield return null; XRSettings.enabled = true; } }
切り替える際(シーン遷移後ならStart関数などで)、VRシーンの場合は
StartCoroutine(LoadDevice("OpenVR"));
とし、非VRシーンでは
StartCoroutine(LoadDevice("None"));
を呼ぶだけです。
同じシーンでボタンで切り替えている動画です↓
普通の2DとOpenVR(SteamVR)の切り替え、けっこうスムーズにいくものなんだな。実際は2Dの設定シーンと3Dのゲームシーンって感じで使うと思うけど。 pic.twitter.com/5XP58fDi0t
— とりカシュ△ (@torikasyu) April 8, 2020