Exemple #1
0
        void HandleTrigger_AdjustSliders(ButtonStage buttonStage, Vector2 axis)
        {
            if (isOn)
            {
                switch (buttonStage)
                {
                case ButtonStage.PressDown:
                    isTriggerDown = true;

                    ViveSR_Experience_HintMessage.instance.SetHintMessage(hintType.onController, "[Depth Panel]\nAdjust Values", false);
                    ViveSR_Experience_ControllerDelegate.touchpadDelegate -= HandleTouchpad_ResetDepthPanel;
                    ViveSR_Experience_Demo.instance.Rotator.RenderButtons(false);
                    break;

                case ButtonStage.PressUp:
                    isTriggerDown = false;

                    ViveSR_Experience_ControllerDelegate.touchpadDelegate += HandleTouchpad_ResetDepthPanel;
                    if (!isTouchpadDown)
                    {
                        ViveSR_Experience_Demo.instance.Rotator.RenderButtons(true);
                        ViveSR_Experience_HintMessage.instance.SetHintMessage(hintType.onController, "", false);
                    }
                    break;
                }
            }
        }
Exemple #2
0
        void HandleTrigger_DartGenerator(ButtonStage buttonStage, Vector2 axis)
        {
            if (!enabled)
            {
                return;
            }
            if (!ViveSR_RigidReconstruction.IsExportingMesh && !ViveSR_RigidReconstruction.IsScanning && enabled)
            {
                switch (buttonStage)
                {
                case ButtonStage.PressDown:
                    if (Time.timeSinceLevelLoad - dartGeneratorMgr.tempTime > dartGeneratorMgr.coolDownTime)
                    {
                        TriggerPress();
                    }
                    break;

                case ButtonStage.Press:
                    if (isHolding)
                    {
                        TriggerHold();
                    }
                    break;

                case ButtonStage.PressUp:
                    if (isHolding)
                    {
                        TriggerRelease();
                        dartGeneratorMgr.tempTime = Time.timeSinceLevelLoad;
                    }
                    break;
                }
            }
        }
        public void handleTouchpad_Play(ButtonStage buttonStage, Vector2 axis)
        {
            TouchpadDirection touchpadDirection = ViveSR_Experience_ControllerDelegate.GetTouchpadDirection(axis, false);

            switch (buttonStage)
            {
            case ButtonStage.PressDown:
                switch (touchpadDirection)
                {
                case TouchpadDirection.Up:
                    this.DelayOneFrame(() =>
                    {
                        if (isOn)
                        {
                            StaticMeshScript.ClearHintLocators();
                            PortalScript.PortalManager.gameObject.SetActive(true);

                            ViveSR_DualCameraRig.Instance.VirtualCamera.cullingMask &= ~(1 << LayerMask.NameToLayer("UI"));
                            PortalScript.PortalManager.TurnOnCamera();

                            portalCamerasEnabledEvent.Invoke();
                            Transform controller_fwd = PlayerHandUILaserPointer.LaserPointer.gameObject.transform;
                            npcGenerator.Play(controller_fwd.position + controller_fwd.forward * 8, controller_fwd.forward, MR_Chairs);
                        }
                    });
                    break;
                }
                break;
            }
        }
Exemple #4
0
 void HandleGrip_SemanticObjOperation(ButtonStage buttonStage, Vector2 axis)
 {
     if (buttonStage == ButtonStage.PressDown)
     {
         ShowNextSemanticType();
     }
 }
 void HandleGrip(ButtonStage buttonStage, Vector2 axis)
 {
     switch (buttonStage)
     {
     case ButtonStage.PressDown:
         StaticMeshScript.SwitchShowCollider(StaticMeshScript.MeshShowMode == ShowMode.All? ShowMode.None : ShowMode.All);
         break;
     }
 }
Exemple #6
0
    // Start is called before the first frame update
    void Start()
    {
        // オーディオマネージャーが存在するかの確認
        //if(!AudioManager.Instance){
        // 存在しなければ生成
        // Instantiate(audioManagerPrefab, Vector3.zero, Quaternion.identity);
        //Debug.Log("AudioManager.Instanceを生成します");
        //}

        // BGMがなっていなければ、ゲーム用のBGMを鳴らす
        //if(!AudioManager.Instance.IsPlayingBGM()){
        //   AudioManager.Instance.PlayBGM(BGM_OUTGAME);
        //}

        // ボリュームを下げる
        //AudioManager.Instance.BgmVolume(0.5f);

        // ステージクリア数
        int clearMax = PlayerPrefs.GetInt("StageClear", 0);

        // 子オブジェクトを全削除
        foreach (Transform n in contents.transform)
        {
            GameObject.Destroy(n.gameObject);
        }

        // stageMax 分 buttonPrefab を生成
        for (int i = 0; i < stageMax; i++)
        {
            // contents 内に buttonPrefab を生成
            GameObject obj = Instantiate(
                buttonPrefab,
                Vector3.zero,
                Quaternion.identity,
                contents.transform
                ) as GameObject;

            // ボタンの情報を変更
            ButtonStage button = obj.GetComponent <ButtonStage>();

            // ステージをセット
            int stage = i + 1;

            // クリアを確認
            bool flag = false;

            // クリアしているステージより下なら選択できるようにする
            if (i <= clearMax)
            {
                flag = true;
            }

            // ボタンを設定
            // Debug.Log(stage);
            button.SetStage(flag, stage);
        }
    }
 void HandleGrip(ButtonStage buttonStage, Vector2 axis)
 {
     switch (buttonStage)
     {
     case ButtonStage.PressDown:
         DynamicMeshScript.SetMeshDisplay(!DynamicMeshScript.ShowDynamicCollision);
         break;
     }
 }
 void HandleTouchpad(ButtonStage buttonStage, Vector2 axis)
 {
     switch (buttonStage)
     {
     case ButtonStage.Press:
         DepthControlScript.ResetPanelPos();
         break;
     }
 }
        void HandleTouchpadInput_SubMenu(ButtonStage buttonStage, Vector2 axis)
        {
            if (isSubMenuOn)
            {
                touchpadDirection_prev = touchpadDirection;
                touchpadDirection      = ViveSR_Experience_ControllerDelegate.GetTouchpadDirection(axis, true);
                #region VIVEPro
                if (ViveSR_Experience.instance.CurrentDevice == DeviceType.Vive)
                {
                    switch (buttonStage)
                    {
                    case ButtonStage.PressDown:
                        if (touchpadDirection == TouchpadDirection.Mid)
                        {
                            Execute();
                        }
                        if (AllowHover())
                        {
                            switch (touchpadDirection)
                            {
                            case TouchpadDirection.Up: HoverBtn(false); break;

                            case TouchpadDirection.Down: HoverBtn(true); break;
                            }
                        }
                        break;
                    }
                }
                #endregion

                #region VIVET2
                else if (ViveSR_Experience.instance.CurrentDevice == DeviceType.ViveT2)
                {
                    switch (buttonStage)
                    {
                    case ButtonStage.PressDown:
                        if (touchpadDirection == TouchpadDirection.Mid)
                        {
                            Execute();
                        }

                        break;
                    }
                    if (AllowHover() && touchpadDirection != touchpadDirection_prev)
                    {
                        switch (touchpadDirection)
                        {
                        case TouchpadDirection.Up: HoverBtn(false); break;

                        case TouchpadDirection.Down: HoverBtn(true); break;
                        }
                    }
                }
                #endregion
            }
        }
Exemple #10
0
 public void handleTouchpad_MRChair(ButtonStage buttonStage, Vector2 axis)
 {
     switch (buttonStage)
     {
     case ButtonStage.PressDown:
         TouchpadDirection touchpadDirection = ViveSR_Experience_ControllerDelegate.GetTouchpadDirection(axis, false);
         handleTouchpad_MRChair_Pressdown(touchpadDirection);
         break;
     }
 }
Exemple #11
0
 void HandleTouchpad_DartControl(ButtonStage buttonStage, Vector2 axis)
 {
     switch (buttonStage)
     {
     case ButtonStage.PressDown:
         TouchpadDirection touchpadDirection = ViveSR_Experience_ControllerDelegate.GetTouchpadDirection(axis, false);
         HandleTouchpad_DartControl_PressDown(touchpadDirection);
         break;
     }
 }
Exemple #12
0
        void ClickListener(SteamVR_Action_Boolean fromAction, SteamVR_Input_Sources fromSource, bool newState)
        {
            if (fromSource != SteamVR_Input_Sources.LeftHand && fromSource != SteamVR_Input_Sources.RightHand)
            {
                return;
            }

            // Get button according to control type
            ViveControlType  controlType = ViveControlInputs.First(x => fromAction == x.Value.actionClick || fromAction == x.Value.actionTouch).Key;
            ViveControlInput input       = ViveControlInputs[controlType];

            // Get button click status
            ButtonStage status = GetInputActionStatus(fromAction, input);

            if (status == ButtonStage.None)
            {
                return;
            }

            // Call each button's delegate behavior
            if (controlType == ViveControlType.Grip)
            {
                if (gripDelegate != null)
                {
                    gripDelegate(status, Vector2.zero);
                }
                if (gripDelegate_Late != null)
                {
                    gripDelegate_Late(status, Vector2.zero);
                }
            }
            else if (controlType == ViveControlType.Trigger)
            {
                if (triggerDelegate != null)
                {
                    triggerDelegate(status, Vector2.zero);
                }
                if (triggerDelegate_Late != null)
                {
                    triggerDelegate_Late(status, Vector2.zero);
                }
            }
            else if (controlType == ViveControlType.Touchpad)
            {
                if (touchpadDelegate != null)
                {
                    touchpadDelegate(status, input.actionPosition.GetAxis(hand.handType));
                }
                if (touchpadDelegate_Late != null)
                {
                    touchpadDelegate_Late(status, input.actionPosition.GetAxis(hand.handType));
                }
            }
        }
        void HandleTrigger(ButtonStage buttonStage, Vector2 axis)
        {
            switch (buttonStage)
            {
            case ButtonStage.PressDown:
                ViveSR_Experience_Demo.instance.Rotator.RenderButtons(false);
                break;

            case ButtonStage.PressUp:
                ViveSR_Experience_Demo.instance.Rotator.RenderButtons(true);
                break;
            }
        }
        void HandleTrigger(ButtonStage buttonStage, Vector2 axis)
        {
            switch (buttonStage)
            {
            case ButtonStage.PressDown:
                ViveSR_Experience_ControllerDelegate.touchpadDelegate -= HandleTouchpad;
                break;

            case ButtonStage.PressUp:
                ViveSR_Experience_ControllerDelegate.touchpadDelegate += HandleTouchpad;
                break;
            }
        }
        void HandleGrip_SwitchEffects(ButtonStage buttonStage, Vector2 axis)
        {
            switch (buttonStage)
            {
            case ButtonStage.PressDown:
                EffectsScript.CurrentEffectNumber += 1;
                if (EffectsScript.CurrentEffectNumber == (int)ImageEffectType.TOTAL_NUM)
                {
                    EffectsScript.CurrentEffectNumber = -1;
                }

                EffectsScript.ChangeShader(EffectsScript.CurrentEffectNumber);
                break;
            }
        }
Exemple #16
0
        void HandleTouchpad(ButtonStage buttonStage, Vector2 axis)
        {
            if (!isTriggerDown)
            {
                switch (buttonStage)
                {
                case ButtonStage.PressDown:
                    SwitchModeScript.SwithMode(SwitchModeScript.currentMode == DualCameraDisplayMode.MIX ? DualCameraDisplayMode.VIRTUAL : DualCameraDisplayMode.MIX);
                    EffectsScript.ChangeShader(-1);

                    triggerCanvas.SetActive(SwitchModeScript.currentMode == DualCameraDisplayMode.MIX);
                    break;
                }
            }
        }
        void HandleTrigger_DrawTiles(ButtonStage buttonStage, Vector2 axis)
        {
            switch (buttonStage)
            {
            case ButtonStage.PressDown:
                isTriggerDown = true;
                EnableTileSpawn();
                break;

            case ButtonStage.PressUp:
                isTriggerDown = false;
                DisableTileSpawn();
                break;
            }
        }
Exemple #18
0
        private void HandleTouchpad_MeshOperation(ButtonStage buttonStage, Vector2 axis)
        {
            if (isTriggerDown)
            {
                return;
            }

            switch (buttonStage)
            {
            case ButtonStage.PressDown:
                TouchpadDirection touchpadDirection = ViveSR_Experience_ControllerDelegate.GetTouchpadDirection(axis, false);
                HandleTouchpad_MeshOperation_PressDown(touchpadDirection);
                break;
            }
        }
Exemple #19
0
        //private void HandleTouchpad_SemanticObjOperation(ButtonStage buttonStage, Vector2 axis)
        //{
        //    if (!isTriggerDown)
        //    {
        //        switch (buttonStage)
        //        {
        //            case ButtonStage.PressDown:

        //                TouchpadDirection touchpadDirection = ViveSR_Experience_ControllerDelegate.GetTouchpadDirection(axis, false);

        //                if (touchpadDirection == TouchpadDirection.Up)
        //                {
        //                    SemanticDrawer.ShowAllObjects();
        //                    HintText.text = "Show All";
        //                }
        //                else if (touchpadDirection == TouchpadDirection.Left)
        //                {
        //                    SemanticDrawer.ClearAllObjects();
        //                    ShowPreviousSemanticType();
        //                }
        //                else if (touchpadDirection == TouchpadDirection.Right)
        //                {
        //                    SemanticDrawer.ClearAllObjects();
        //                    ShowNextSemanticType();
        //                }
        //                else if (touchpadDirection == TouchpadDirection.Down)
        //                {
        //                    SemanticDrawer.ClearAllObjects();
        //                    HintText.text = "Show Scene Objects";
        //                }
        //                break;
        //        }
        //    }
        //}

        //private void ShowNextSemanticType()
        //{
        //    int type, input_type_int;
        //    type = input_type_int = (int)currentSemanticType;
        //    do {
        //        type = ++type % (int)SceneUnderstandingObjectType.NumOfTypes;
        //        if (type == input_type_int)
        //        {
        //            SemanticDrawer.ShowBoundingBoxAndIconByType(type, true, true);
        //            break;
        //        }
        //    } while (type == (int)SceneUnderstandingObjectType.NONE || !SemanticDrawer.ShowBoundingBoxAndIconByType(type, true, true));

        //    StaticMeshScript.ShowSemanticColliderByType((SceneUnderstandingObjectType)type);
        //    currentSemanticType = (SceneUnderstandingObjectType)type;
        //    HintText.text = "Show "+ ViveSR_SceneUnderstanding.SemanticTypeToString(currentSemanticType);
        //}

        //private void ShowPreviousSemanticType()
        //{
        //    int type, input_type_int;
        //    type = input_type_int = (int)currentSemanticType;
        //    do
        //    {
        //        if (--type < 0) type += (int)SceneUnderstandingObjectType.NumOfTypes;
        //        if (type == input_type_int)
        //        {
        //            SemanticDrawer.ShowBoundingBoxAndIconByType(type, true, true);
        //            break;
        //        }
        //    } while (type == (int)SceneUnderstandingObjectType.NONE || !SemanticDrawer.ShowBoundingBoxAndIconByType(type, true, true));

        //    StaticMeshScript.ShowSemanticColliderByType((SceneUnderstandingObjectType)type);
        //    currentSemanticType = (SceneUnderstandingObjectType)type;
        //    HintText.text = "Show " + ViveSR_SceneUnderstanding.SemanticTypeToString(currentSemanticType);
        //}

        //void HandleTrigger_SelectSemanticObject(ButtonStage buttonStage, Vector2 axis)
        //{
        //    switch (buttonStage)
        //    {
        //        case ButtonStage.PressDown:
        //            SemanticDrawer.enablePlacer = EnablePlacer;
        //            SemanticDrawer.TriggerPressDown();
        //            isTriggerDown = true;
        //            break;

        //        case ButtonStage.PressUp:
        //            isTriggerDown = false;
        //            SceneUnderstandingObjectType type = SemanticDrawer.TriggerPressUp();
        //            //HintText.text = "Show " + ViveSR_SceneUnderstanding.SemanticTypeToString(type);
        //            break;
        //    }
        //}

        void HandleTrigger_DisplayRay(ButtonStage buttonStage, Vector2 axis)
        {
            switch (buttonStage)
            {
            case ButtonStage.PressDown:
                SemanticDrawer.TriggerPressDown();
                StaticMeshScript.SetScanning(true);
                isTriggerDown = true;
                break;

            case ButtonStage.PressUp:
                SemanticDrawer.TriggerPressUp();
                StaticMeshScript.SetScanning(false);
                isTriggerDown = false;
                break;
            }
        }
Exemple #20
0
        void HandleTrigger(ButtonStage buttonStage, Vector2 axis)
        {
            switch (buttonStage)
            {
            case ButtonStage.PressDown:
                LeftText.enabled  = true;
                RightText.enabled = true;
                TriggerCanvas.SetActive(false);
                break;

            case ButtonStage.PressUp:
                LeftText.enabled  = false;
                RightText.enabled = false;
                TriggerCanvas.SetActive(true);
                break;
            }
        }
        void HandleTrigger_ThrowableItemUI(ButtonStage buttonStage, Vector2 axis)
        {
            switch (buttonStage)
            {
            case ButtonStage.PressDown:
                TriggerHint.SetActive(false);
                RightHint.SetActive(true);
                LeftHint.SetActive(true);
                break;

            case ButtonStage.PressUp:
                TriggerHint.SetActive(true);
                RightHint.SetActive(false);
                LeftHint.SetActive(false);
                break;
            }
        }
Exemple #22
0
        void HandleTrigger_Tutorial(ButtonStage buttonStage, Vector2 axis)
        {
            ViveSR_Experience_IButton CurrentButton = ViveSR_Experience_Demo.instance.Rotator.CurrentButton;

            if (IsTutorialOn && CurrentButton.isOn)
            {
                switch (buttonStage)
                {
                case ButtonStage.PressDown:
                    InputHandlers[CurrentButton.ButtonType].TriggerDown();
                    break;

                case ButtonStage.PressUp:
                    InputHandlers[CurrentButton.ButtonType].TriggerUp();
                    break;
                }
            }
        }
        void HandleTouchpad_ResetCameraControlPanel(ButtonStage buttonStage, Vector2 axis)
        {
            if (!isOn)
            {
                return;
            }
            TouchpadDirection touchpadDirection = ViveSR_Experience_ControllerDelegate.GetTouchpadDirection(axis, true);

            switch (buttonStage)
            {
            case ButtonStage.PressDown:
                HandleTouchpad_ResetCameraControlPanel_PressDown(touchpadDirection);
                break;

            case ButtonStage.PressUp:
                HandleTouchpad_ResetCameraControlPanel_PressUp(touchpadDirection);
                break;
            }
        }
Exemple #24
0
        public void HandleGrip_SwitchMeshDisplay(ButtonStage buttonStage, Vector2 axis)
        {
            switch (buttonStage)
            {
            case ButtonStage.PressDown:
                bool allowSwitch = StaticMeshScript.CheckModelFileExist() &&
                                   !ViveSR_RigidReconstruction.IsExportingMesh &&
                                   !ViveSR_RigidReconstruction.IsScanning;

                if (!allowSwitch)
                {
                    break;
                }

                SwitchMeshDisplayMode((MeshDisplayMode)(((int)meshDisplayMode + 1) % (int)MeshDisplayMode.MaxNum));

                break;
            }
        }
Exemple #25
0
        void HandleTouchpad(ButtonStage buttonStage, Vector2 axis)
        {
            switch (buttonStage)
            {
            case ButtonStage.PressDown:

                TouchpadDirection touchpadDirection = ViveSR_Experience_ControllerDelegate.GetTouchpadDirection(axis, false);

                if (touchpadDirection == TouchpadDirection.Up)
                {
                    DynamicMeshScript.SetMeshDisplay(!DynamicMeshScript.ShowDynamicCollision);
                    DisplayMesh.text = DisplayMesh.text == "[Show]" ? "[Hide]" : "[Show]";
                }
                else if (touchpadDirection == TouchpadDirection.Down)
                {
                    dartGenerator.DestroyObjs();
                }
                break;
            }
        }
        void HandleTrigger(ButtonStage buttonStage, Vector2 axis)
        {
            switch (buttonStage)
            {
            case ButtonStage.PressDown:
                if (Time.timeSinceLevelLoad - dartGeneratorMgr_dynamic.tempTime > dartGeneratorMgr_dynamic.coolDownTime)
                {
                    ViveSR_Experience_Demo.instance.ButtonScripts[MenuButton.EnableMesh].SubMenu.RenderSubBtns(false);
                    ViveSR_Experience_Demo.instance.Rotator.RenderButtons(false);
                    disabled = true;
                }
                break;

            case ButtonStage.PressUp:
                disabled = false;
                ViveSR_Experience_Demo.instance.ButtonScripts[MenuButton.EnableMesh].SubMenu.RenderSubBtns(true);
                ViveSR_Experience_Demo.instance.Rotator.RenderButtons(true);
                break;
            }
        }
Exemple #27
0
        void HandleTrigger(ButtonStage buttonStage, Vector2 axis)
        {
            if (SwitchModeScript.currentMode == DualCameraDisplayMode.MIX)
            {
                switch (buttonStage)
                {
                case ButtonStage.PressDown:
                    EffectsScript.GenerateEffectBall();
                    attachPointCanvas.SetActive(false);
                    isTriggerDown = true;
                    break;

                case ButtonStage.PressUp:
                    EffectsScript.HideEffectBall();
                    attachPointCanvas.SetActive(true);
                    isTriggerDown = false;
                    break;
                }
            }
        }
        void HandleTouchpad(ButtonStage buttonStage, Vector2 axis)
        {
            switch (buttonStage)
            {
            case ButtonStage.PressDown:

                TouchpadDirection touchpadDirection = ViveSR_Experience_ControllerDelegate.GetTouchpadDirection(axis, true);

                switch (touchpadDirection)
                {
                case TouchpadDirection.Up:
                    PortalScript.ResetPortalPosition();
                    break;

                case TouchpadDirection.Down:
                    dartGeneratorMgr.DestroyObjs();
                    break;
                }
                break;
            }
        }
Exemple #29
0
        void HandleTrigger_Effects(ButtonStage buttonStage, Vector2 axis)
        {
            switch (buttonStage)
            {
            case ButtonStage.PressDown:
                ViveSR_Experience.instance.SoundManager.PlayAtAttachPoint(AudioClipIndex.EffectBall);
                ViveSR_Experience_Demo.instance.Rotator.RenderButtons(false);
                ViveSR_Experience_Demo.instance.EffectsScript.GenerateEffectBall();

                for (int i = 0; i < EffectBallRenderers.Count; i++)
                {
                    EffectBallRenderers[i].enabled = true;
                }

                break;

            case ButtonStage.PressUp:
                ViveSR_Experience_Demo.instance.Rotator.RenderButtons(true);
                ViveSR_Experience_Demo.instance.EffectsScript.HideEffectBall();
                break;
            }
        }
Exemple #30
0
        void HandleTouchpad_ResetDepthPanel(ButtonStage buttonStage, Vector2 axis)
        {
            if (isOn)
            {
                TouchpadDirection touchpadDirection = ViveSR_Experience_ControllerDelegate.GetTouchpadDirection(axis, true);

                switch (buttonStage)
                {
                case ButtonStage.PressDown:

                    switch (touchpadDirection)
                    {
                    case TouchpadDirection.Up:

                        isTouchpadDown = true;
                        ViveSR_Experience_HintMessage.instance.SetHintMessage(hintType.onController, "[Depth Panel]\nMove the Panel", false);
                        ViveSR_Experience_ControllerDelegate.triggerDelegate -= HandleTrigger_AdjustSliders;
                        ViveSR_Experience_Demo.instance.Rotator.RenderButtons(false);
                        StartCoroutine(ResetPanelPos());

                        break;
                    }

                    break;

                case ButtonStage.PressUp:
                    isTouchpadDown = false;

                    ViveSR_Experience_ControllerDelegate.triggerDelegate += HandleTrigger_AdjustSliders;
                    if (!isTriggerDown)
                    {
                        ViveSR_Experience_HintMessage.instance.SetHintMessage(hintType.onController, "", false);
                        ViveSR_Experience_Demo.instance.Rotator.RenderButtons(true);
                    }

                    break;
                }
            }
        }