CardBoard SDK VRモードと非VRモードの切り替え
https://teratail.com/questions/287533
Unity2019.3以降からUnityXRに統合され、検索すると出てくる既存の方法では切り替えられなかった. XRGeneralSettings.Instance.Managerから切り替えることが出来るらしい.
非VR -> VR
IEnumerator SwitchToVR() {
var manager = XRGeneralSettings.Instance.Manager;
#if !UNITY_EDITOR
Screen.orientation = ScreenOrientation.LandscapeLeft;
while (Screen.orientation != ScreenOrientation.LandscapeLeft) {
yield return null;
}
#endif
if (!manager.isInitializationComplete) {
yield return manager.InitializeLoader();
}
manager.StartSubsystems();
}manager.StartSubSystems() でVRモードに変更、PlayerSettingsの XR Plugin Managerment AndroidのPlug-in ProvidersのCardboard XR Pluginにチェックが入っていなければならない.
また、起動時に非VRモードで起動したい場合はInitialize XR on Startup のチェックをはずす.
また、エディタ上では画面の回転が出来ないのでコルーチンが永遠に進まない。ので#if !UNITY_EDITOR で対処.
VR -> 非VR
void SwitchTo2D() {
Screen.orientation = ScreenOrientation.Portrait;
manager.StopSubsystems();
}