Exemplo n.º 1
0
        void Scan()
        {
            bool allowScan = !ViveSR_RigidReconstruction.IsScanning &&
                             !ViveSR_RigidReconstruction.IsExportingMesh &&
                             !StaticMeshScript.ModelIsLoading;

            if (!allowScan)
            {
                return;
            }

            SwitchMeshDisplayMode(0);
            dartGeneratorMgr.DestroyObjs();

            if (StaticMeshScript.CheckModelLoaded())
            {
                StaticMeshScript.LoadMesh(false);
                LoadText.color = BrightColor;
            }

            GripCanvas.SetActive(false);
            TriggerCanvas.SetActive(false);
            HintText.text = "";

            RigidReconstruction.SRWork_Rigid_Reconstruciton.RegisterDataErrorHandler((int)Error.GPU_MEMORY_FULL, GPUMemoryFull);
            StaticMeshScript.EnableDepthProcessingAndScanning(true);

            LoadText.color = OriginalColor;
            ScanText.color = OriginalColor;
            SaveText.color = BrightColor;
            StopText.color = BrightColor;
        }
        void Scan()
        {
            bool allowScan = !ViveSR_RigidReconstruction.IsScanning &&
                             !ViveSR_RigidReconstruction.IsExportingMesh &&
                             !StaticMeshScript.ModelIsLoading;

            if (!allowScan)
            {
                return;
            }

            dartGeneratorMgr.DestroyObjs();
            TileSpawnerScript.ClearTiles();
            if (StaticMeshScript.texturedMesh != null)
            {
                StaticMeshScript.LoadMesh(false);
                LoadText.color = BrightColor;
            }

            GripCanvas.SetActive(false);
            TriggerCanvas.SetActive(false);
            HintText.text = "";
            ViveSR_Experience_ControllerDelegate.gripDelegate -= HandleGrip_SwitchMode;

            RigidReconstruction.SRWork_Rigid_Reconstruciton.RegisterDataErrorHandler((int)Error.GPU_MEMORY_FULL, GPUMemoryFull);
            StaticMeshScript.EnableDepthProcessingAndScanning(true);

            LoadText.color = OriginalColor;
            ScanText.color = OriginalColor;
            SaveText.color = BrightColor;
            StopText.color = BrightColor;
        }
        public override void ExecuteToDo()
        {
            DualCameraDisplayMode targetMode = isOn ? DualCameraDisplayMode.VIRTUAL : DualCameraDisplayMode.MIX;

            StaticMeshScript.SwitchModeScript.SwithMode(targetMode);
            if (isOn)
            {
                ViveSR_Experience_Demo.instance.SubButtonScripts[SubMenuButton.EnableMesh_Dynamic].ForceExcute(false);
                ViveSR_Experience_Demo.instance.SubButtonScripts[SubMenuButton.EnableMesh_StaticMR].ForceExcute(false);

                StaticMeshScript.LoadMesh(true, true,
                                          () => {
                    ViveSR_Experience_Demo.instance.Rotator.RenderButtons(false);
                    SubMenu.RenderSubBtns(false);
                    disabled = true;
                    ViveSR_Experience_HintMessage.instance.SetHintMessage(hintType.onHeadSet, "[Enable Mesh]\nLoading...", false);
                },
                                          () => {
                    ViveSR_Experience_Demo.instance.Rotator.RenderButtons(true);
                    SubMenu.RenderSubBtns(true);
                    disabled = false;
                    ViveSR_Experience_HintMessage.instance.SetHintMessage(hintType.onController, "", false);
                    ViveSR_Experience_HintMessage.instance.SetHintMessage(hintType.onHeadSet, "Mesh Loaded!", true, 1f);
                    dartGeneratorMgr_static.gameObject.SetActive(true);
                    ViveSR_Experience_ControllerDelegate.triggerDelegate += HandleTrigger;
                });
            }
            else
            {
                StaticMeshScript.LoadMesh(false);
                dartGeneratorMgr_static.gameObject.SetActive(false);
                ViveSR_Experience_ControllerDelegate.triggerDelegate -= HandleTrigger;
                dartGeneratorMgr_static.DestroyObjs();
            }
        }
        public override void ActionToDo()
        {
            ViveSR_Experience_Demo.instance.bg.SetActive(isOn);
            ViveSR_Experience_Demo.instance.realWorldFloor.SetActive(isOn);

            PortalScript.SetPortal(isOn);

            if (isOn)
            {
                ViveSR_Experience_ControllerDelegate.triggerDelegate  += HandleTrigger;
                ViveSR_Experience_ControllerDelegate.touchpadDelegate += HandleTouchpad;
            }
            else
            {
                ViveSR_Experience_ControllerDelegate.triggerDelegate  -= HandleTrigger;
                ViveSR_Experience_ControllerDelegate.touchpadDelegate -= HandleTouchpad;
                dartGeneratorMgr.DestroyObjs();
            }
        }
        public override void ExecuteToDo()
        {
            if (isOn)
            {
                ViveSR_Experience_Demo.instance.SubButtonScripts[SubMenuButton.EnableMesh_StaticMR].ForceExcute(false);
                ViveSR_Experience_Demo.instance.SubButtonScripts[SubMenuButton.EnableMesh_StaticVR].ForceExcute(false);
                ViveSR_Experience_ControllerDelegate.triggerDelegate += HandleTrigger;
                ViveSR_Experience_ControllerDelegate.gripDelegate    += HandleGrip;
            }
            else
            {
                ViveSR_Experience_ControllerDelegate.triggerDelegate -= HandleTrigger;
                ViveSR_Experience_ControllerDelegate.gripDelegate    -= HandleGrip;
                dartGeneratorMgr_dynamic.DestroyObjs();
            }
            dartGeneratorMgr_dynamic.gameObject.SetActive(isOn);

            DynamicMeshScript.SetDynamicMesh(isOn);
        }
        public override void ExecuteToDo()
        {
            if (isOn)
            {
                ViveSR_Experience_Demo.instance.SubButtonScripts[SubMenuButton.EnableMesh_Dynamic].ForceExcute(false);
                ViveSR_Experience_Demo.instance.SubButtonScripts[SubMenuButton.EnableMesh_StaticVR].ForceExcute(false);

                StaticMeshScript.LoadMesh(true, false,
                                          () => {
                    ViveSR_Experience_Demo.instance.Rotator.RenderButtons(false);
                    SubMenu.RenderSubBtns(false);
                    disabled = true;
                    ViveSR_Experience_HintMessage.instance.SetHintMessage(hintType.onHeadSet, "[Enable Mesh]\nLoading...", false);
                },
                                          () => {
                    ViveSR_Experience_Demo.instance.Rotator.RenderButtons(true);
                    SubMenu.RenderSubBtns(true);
                    disabled = false;
                    ViveSR_Experience_HintMessage.instance.SetHintMessage(hintType.onController, "", false);
                    ViveSR_Experience_HintMessage.instance.SetHintMessage(hintType.onHeadSet, "Mesh Loaded!", true);
                    dartGeneratorMgr_static.gameObject.SetActive(true);
                    ViveSR_Experience_ControllerDelegate.triggerDelegate += HandleTrigger;
                    ViveSR_Experience_ControllerDelegate.gripDelegate    += HandleGrip;
                }
                                          );
            }
            else
            {
                StaticMeshScript.SwitchShowCollider(ShowMode.None);
                StaticMeshScript.LoadMesh(false);
                dartGeneratorMgr_static.gameObject.SetActive(false);
                ViveSR_Experience_ControllerDelegate.triggerDelegate -= HandleTrigger;
                ViveSR_Experience_ControllerDelegate.gripDelegate    -= HandleGrip;
                dartGeneratorMgr_static.DestroyObjs();
            }
        }
Exemplo n.º 7
0
        void HandleTouchpad_SwitchDart(ButtonStage buttonStage, Vector2 axis)
        {
            if (!enabled)
            {
                return;
            }
            touchpadDirection_prev = touchpadDirection;
            touchpadDirection      = ViveSR_Experience_ControllerDelegate.GetTouchpadDirection(axis, true);
            #region VIVEPro
            if (ViveSR_Experience.instance.CurrentDevice == DeviceType.Vive)
            {
                switch (buttonStage)
                {
                case ButtonStage.PressDown:

                    switch (touchpadDirection)
                    {
                    case TouchpadDirection.Right:
                        SwitchDart(true);
                        break;

                    case TouchpadDirection.Left:
                        SwitchDart(false);
                        break;

                    case TouchpadDirection.Up:
                        if (allowDefaultSwitchPlacementMode)
                        {
                            dartGeneratorMgr.SwitchPlacementMode();
                        }
                        ViveSR_Experience_ControllerDelegate.touchpadDelegate -= HandleTouchpad_SwitchDart;
                        break;

                    case TouchpadDirection.Down:
                        if (allowDefaultClear)
                        {
                            dartGeneratorMgr.DestroyObjs();
                        }
                        break;
                    }
                    break;
                }
            }
            #endregion
            #region VIVET2
            else if (ViveSR_Experience.instance.CurrentDevice == DeviceType.ViveT2)
            {
                switch (buttonStage)
                {
                case ButtonStage.PressDown:
                    switch (touchpadDirection)
                    {
                    case TouchpadDirection.Right: SwitchDart(true); break;

                    case TouchpadDirection.Left: SwitchDart(false); break;

                    case TouchpadDirection.Up:
                        if (allowDefaultSwitchPlacementMode)
                        {
                            dartGeneratorMgr.SwitchPlacementMode();
                        }
                        ViveSR_Experience_ControllerDelegate.touchpadDelegate -= HandleTouchpad_SwitchDart;
                        break;

                    case TouchpadDirection.Down:
                        if (allowDefaultClear)
                        {
                            dartGeneratorMgr.DestroyObjs();
                        }
                        break;
                    }
                    break;
                }
                if (touchpadDirection_prev != touchpadDirection)
                {
                    switch (touchpadDirection)
                    {
                    case TouchpadDirection.Right:
                        SwitchDart(true);
                        break;

                    case TouchpadDirection.Left:
                        SwitchDart(false);
                        break;

                    case TouchpadDirection.Up:
                        if (allowDefaultSwitchPlacementMode)
                        {
                            dartGeneratorMgr.SwitchPlacementMode();
                        }
                        ViveSR_Experience_ControllerDelegate.touchpadDelegate -= HandleTouchpad_SwitchDart;
                        break;

                    case TouchpadDirection.Down:
                        if (allowDefaultClear)
                        {
                            dartGeneratorMgr.DestroyObjs();
                        }
                        break;
                    }
                }
            }
            #endregion
        }