Exemplo n.º 1
0
        void disableCameraImage()
        {
#if DOWNLOADED_ARFOUNDATION
            if (BackgroundObj != null)
            {
                if (BackgroundObjAutoDisable)
                {
                    StartCoroutine(delayedSubCameraDisable());
                    for (int loop = 0; loop < Cameras.Length; loop++)
                    {
                        Cameras[loop].cullingMask = cameraMasks_[loop];
                    }
                }
                else
                {
                    BackgroundObj.GetComponent <Camera>().depth = -51;

                    ResizeBackGroundQuad resizeBackGroundQuad = BackgroundObj.GetComponentInChildren <ResizeBackGroundQuad>();
                    if (resizeBackGroundQuad != null)
                    {
                        resizeBackGroundQuad.FieldOfView =
                            FindObjectOfType <ARCameraManager>().GetComponent <Camera>().fieldOfView;
                        resizeBackGroundQuad.Resize();
                    }
                }
            }

            IsTracking = true;
#endif
        }
Exemplo n.º 2
0
        void viewModeChange()
        {
            switch (ViewMode)
            {
            case Mode.MR:
            {
                MRCamera.tag = "MainCamera";

                MRObject.SetActive(true);
                ARObject.SetActive(false);
                foreach (SetParentMainCamera hand in Hands)
                {
                    hand.MainCameraTransform = MRCamera;
                }
                foreach (GameObject obj in VRBackgroundObjects)
                {
                    if (obj != null)
                    {
                        foreach (Renderer renderer in obj.GetComponentsInChildren <Renderer>())
                        {
                            renderer.enabled = false;
                        }
                    }
                }
                CameraTarget cameraTarget = MRObject.GetComponentInChildren <CameraTarget>();
                cameraTarget.BackgroundObj.SetActive(true);
                cameraTarget.PlaneDetectEnabled = !SkipDetectFloor;
                VRSubCamera.SetActive(false);

                Canvas[] canvases = FindObjectsOfType <Canvas>();
                foreach (Canvas canvas in canvases)
                {
                    if (canvas.renderMode == RenderMode.WorldSpace && canvas.worldCamera == null)
                    {
                        canvas.worldCamera = MRCamera.GetComponent <Camera>();
                    }
                }
            }
            break;

            case Mode.VR:
            {
                MRCamera.tag = "MainCamera";

                MRObject.SetActive(true);
                MRObject.GetComponentInChildren <HologlaCameraManager>().SwitchViewMode(HologlaCameraManager.ViewMode.VR);
                ARObject.SetActive(false);
                foreach (SetParentMainCamera hand in Hands)
                {
                    hand.MainCameraTransform = MRCamera;
                }
                foreach (GameObject obj in VRBackgroundObjects)
                {
                    if (obj != null)
                    {
                        foreach (Renderer renderer in obj.GetComponentsInChildren <Renderer>())
                        {
                            renderer.enabled = true;
                        }
                    }
                }
                CameraTarget cameraTarget = MRObject.GetComponentInChildren <CameraTarget>();
                cameraTarget.BackgroundObjAutoDisable = true;
                cameraTarget.PlaneDetectEnabled       = !SkipDetectFloor;
                cameraTarget.BackgroundObj.SetActive(false);
                VRSubCamera.SetActive(true);
                cameraTarget.BackgroundObj = VRSubCamera;
                ResizeBackGroundQuad resizeBackGroundQuad = MRObject.GetComponentInChildren <ResizeBackGroundQuad>();
                resizeBackGroundQuad.NoticeTextCenter = false;
#if ENABLE_URP
                var volumes = MRObject.GetComponentsInChildren <UnityEngine.Rendering.Volume>();
                foreach (var volume in volumes)
                {
                    volume.enabled = true;
                }
#else
                Fisheye[] fisheyes = MRObject.GetComponentsInChildren <Fisheye>();
                foreach (Fisheye fisheye in fisheyes)
                {
                    fisheye.enabled = true;
                    Camera camera = fisheye.GetComponent <Camera>();
                    camera.fieldOfView = 90f;
                }
                LeftEyeFrame.SetActive(false);
                RightEyeFrame.SetActive(false);
#endif

                Canvas[] canvases = FindObjectsOfType <Canvas>();
                foreach (Canvas canvas in canvases)
                {
                    if (canvas.renderMode == RenderMode.WorldSpace && canvas.worldCamera == null)
                    {
                        canvas.worldCamera = MRCamera.GetComponent <Camera>();
                    }
                }
            }
            break;

            case Mode.VRSingle:
            {
                ARCamera.tag = "MainCamera";

                MRObject.SetActive(false);
                ARObject.SetActive(true);
                foreach (SetParentMainCamera hand in Hands)
                {
                    hand.MainCameraTransform = ARCamera;
                }
                foreach (GameObject obj in VRBackgroundObjects)
                {
                    if (obj != null)
                    {
                        foreach (Renderer renderer in obj.GetComponentsInChildren <Renderer>())
                        {
                            renderer.enabled = false;
                        }
                    }
                }
                ARObject.GetComponentInChildren <CameraTarget>().BackgroundObjAutoDisable = true;
                ARObject.GetComponentInChildren <CameraTarget>().PlaneDetectEnabled       = !SkipDetectFloor;
                ARObject.GetComponentInChildren <ResizeBackGroundQuad>().NoticeTextCenter = true;
                StartCoroutine(vrCameraSettingCoroutine(CameraClearFlags.SolidColor));

                Canvas[] canvases = FindObjectsOfType <Canvas>();
                foreach (Canvas canvas in canvases)
                {
                    if (canvas.renderMode == RenderMode.WorldSpace && canvas.worldCamera == null)
                    {
                        canvas.worldCamera = ARCamera.GetComponent <Camera>();
                    }
                }
            }
            break;

            case Mode.AR:
            {
                ARCamera.tag = "MainCamera";

                MRObject.SetActive(false);
                ARObject.SetActive(true);
                foreach (SetParentMainCamera hand in Hands)
                {
                    hand.MainCameraTransform = ARCamera;
                }
                foreach (GameObject obj in VRBackgroundObjects)
                {
                    if (obj != null)
                    {
                        foreach (Renderer renderer in obj.GetComponentsInChildren <Renderer>())
                        {
                            renderer.enabled = false;
                        }
                    }
                }
                ARObject.GetComponentInChildren <CameraTarget>().BackgroundObjAutoDisable = false;
                ARObject.GetComponentInChildren <CameraTarget>().PlaneDetectEnabled       = !SkipDetectFloor;
                ARObject.GetComponentInChildren <ResizeBackGroundQuad>().NoticeTextCenter = true;
                StartCoroutine(vrCameraSettingCoroutine(CameraClearFlags.Depth));

                Canvas[] canvases = FindObjectsOfType <Canvas>();
                foreach (Canvas canvas in canvases)
                {
                    if (canvas.renderMode == RenderMode.WorldSpace && canvas.worldCamera == null)
                    {
                        canvas.worldCamera = ARCamera.GetComponent <Camera>();
                    }
                }
            }
            break;
            }
        }