/// <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);
        }
Beispiel #2
0
        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);
        }