/// <summary> /// VRモード停止 /// </summary> public void StopVRMode() { Logging.Debug("Stop VR"); //if (!XRSettings.enabled) return; //if (targetDevice == DeviceHTCVive || targetDevice == MockHTCVive) //{ // // VRモードカメラから通常モードカメラに切り替える // vrCamera.SetActive(false); // normalCamera.SetActive(true); // // コントローラを無効化する // rightController.SetActive(false); // leftController.SetActive(false); // gamepad.SetActive(false); // // テレポートを無効化する // TeleportController.Instance.Disable(); //} //// VRメニュー画面を閉じる //VRMenuController.Instance.CloseMenu(); //// メニューモードをノーマルに変更する //ThumbnailComposer.Instance.ResetVRThumbnailMode(); //if (targetDevice == DeviceCardboard) //{ // // VR用スクリーンタッチパネルを無効にする // touchPanel.gameObject.SetActive(false); //} XRSettings.enabled = false; Logging.Debug("4.XRSettings : " + XRSettings.enabled); //// 太陽光シミュレーションを一旦OFFにする //SolarOperation.Instance.SwitchOnOff(false); //// カラーコーディネートを一旦OFFにする //ColorCoordinate.Instance.SwitchOnOff(false); //// カラーチェンジを一旦OFFにする //ColorChange.Instance.SwitchOnOff(false); //// コントローラをONにする(ただし表示は設定状況に従う) //JoyStickSwitch.Instance.JoyStickStatusChange(true); // 通常モードに戻る StartCoroutine(LoadVRDevice(DeviceNone)); // ARセッションをとめる Logging.Debug("Stop ARSession"); ARSubsystemManager.StopSubsystems(); Logging.Debug("Tracking is now: " + ARSubsystemManager.systemState.ToString()); touchPanel.gameObject.SetActive(false); ToolShowModeManager.Instance.SetToolShowMode(ToolShowMode.Show); }
private void SubscribeToAREvenets() { #if UNITY_EDITOR ARSubsystemManager.CreateSubsystems(); #endif ARSubsystemManager.planeAdded += ARSubsystemManager_PlaneAdded; ARSubsystemManager.planeUpdated += ARSubsystemManager_PlaneUpdated; ARSubsystemManager.planeRemoved += ARSubsystemManager_PlaneRemoved; ARSubsystemManager.sessionSubsystem.TrackingStateChanged += ARSubsystemManager_TrackingStateChanged; ARSubsystemManager.cameraFrameReceived += ARSubsystemManager_CameraFrameReceived; ARSubsystemManager.pointCloudUpdated += ARSubsystemManager_PointCloudUpdated; ARSubsystemManager.referencePointUpdated += ProcessRerencePointUpdated; }
/// <summary> /// VRモードボタン表示 /// </summary> public void ActivateVRMode() { //Logging.Debug("VR has been enabled."); //// VRデバイスがない場合は直ちに復帰する //if (targetDevice == null) return; //// VRタッチパネルを無効化する //touchPanel.gameObject.SetActive(false); //Logging.Debug("XRSettings.isDeviceActive is " + XRSettings.isDeviceActive); //// ターゲットのVRデバイスと異なるデバイスがロードされている場合 //if (string.IsNullOrEmpty(XRSettings.loadedDeviceName) // || XRSettings.loadedDeviceName != targetDevice) //{ // // ターゲットのデバイスをロードする // StartCoroutine(LoadVRDevice(targetDevice)); //} //else //{ // // Activate済みの場合は直ちにVRモードを起動する // Logging.Debug("VR Device has already been activated."); // PlayVRMode(); //} Logging.Debug("VR mode : " + targetDevice.ToString()); //MeasureHeight.Instance if (ARSubsystemManager.systemState > ARSystemState.Installing) { // ARセッションを起動する(スマホVRのみ) ARSubsystemManager.StartSubsystems(); Logging.Debug("Tracking is now " + ARSubsystemManager.systemState.ToString()); Logging.Debug("1.XRSettings : " + XRSettings.enabled); // カードボード(VR)をロードする StartCoroutine(LoadVRDevice(targetDevice)); } ToolShowModeManager.Instance.SetToolShowMode(ToolShowMode.Hide); touchPanel.gameObject.SetActive(true); }