コード例 #1
0
        public ControllerInputIndex GetCurrentSprite(Vector2 axis)
        {
            TouchpadDirection touchpadDirection = ViveSR_Experience_ControllerDelegate.GetTouchpadDirection(axis, true);

            switch (touchpadDirection)
            {
            case TouchpadDirection.Mid:
                currentInput = ControllerInputIndex.mid;
                break;

            case TouchpadDirection.Right:
                currentInput = ControllerInputIndex.right;
                break;

            case TouchpadDirection.Left:
                currentInput = ControllerInputIndex.left;
                break;

            case TouchpadDirection.Up:
                currentInput = ControllerInputIndex.up;
                break;

            case TouchpadDirection.Down:
                currentInput = ControllerInputIndex.down;
                break;
            }

            return(currentInput);
        }
コード例 #2
0
        public void RunSpriteAnimation()
        {
            if (currentInput != previousSprite)
            {
                //Previous...
                if (previousSprite != ControllerInputIndex.none)
                {
                    if (touchpadScript.GetColor(previousSprite.ToTouchpadDirection()) != ViveSR_Experience_Demo.instance.DisableColor)
                    {
                        touchpadScript.SetColor(previousSprite.ToTouchpadDirection(), touchpadImages_isFocused[(int)previousSprite] ? ViveSR_Experience_Demo.instance.BrightFrameColor : ViveSR_Experience_Demo.instance.BrightFrameColor);
                    }
                }

                //Current...
                if (currentInput != ControllerInputIndex.none)
                {
                    SetCanvas(TextCanvas.onTouchPad, true);
                    touchpadScript.StartAnimate(currentInput.ToTouchpadDirection());
                }
                else
                {
                    SetCanvasText(TextCanvas.onTouchPad, "");
                    SetCanvas(TextCanvas.onTouchPad, false);
                    touchpadScript.StopAnimate();
                }
                previousSprite = currentInput;
            }
        }
コード例 #3
0
        public static TouchpadDirection ToTouchpadDirection(this ControllerInputIndex controllerInputIndex)
        {
            Dictionary <ControllerInputIndex, TouchpadDirection> dir =
                new Dictionary <ControllerInputIndex, TouchpadDirection>
            {
                { ControllerInputIndex.none, TouchpadDirection.None },
                { ControllerInputIndex.up, TouchpadDirection.Up },
                { ControllerInputIndex.down, TouchpadDirection.Down },
                { ControllerInputIndex.left, TouchpadDirection.Left },
                { ControllerInputIndex.right, TouchpadDirection.Right },
                { ControllerInputIndex.mid, TouchpadDirection.Mid }
            };

            return(dir[controllerInputIndex]);
        }
コード例 #4
0
        public static string _ToString(this ControllerInputIndex controllerInputIndex)
        {
            Dictionary <ControllerInputIndex, string> dir =
                new Dictionary <ControllerInputIndex, string>
            {
                { ControllerInputIndex.right, "Right" },
                { ControllerInputIndex.left, "Left" },
                { ControllerInputIndex.up, "Up" },
                { ControllerInputIndex.down, "Down" },
                { ControllerInputIndex.mid, "Mid" },
                { ControllerInputIndex.trigger, "Trigger" },
                { ControllerInputIndex.grip, "Grip" },
            };

            return(dir[controllerInputIndex]);
        }
コード例 #5
0
        public void ToggleTutorial(bool isOn)
        {
            IsTutorialOn = isOn;
            if (!isOn)
            {
                SetCanvas(TextCanvas.onTouchPad, false);
            }
            SetCanvas(TextCanvas.onRotator, isOn);
            SetTouchpadImage(isOn);
            SetTouchpadSprite(isOn, ControllerInputIndex.left, ControllerInputIndex.right, ControllerInputIndex.mid);

            if (!isOn)
            {
                currentInput = ControllerInputIndex.none;
                RunSpriteAnimation(); //stop previous coroutine;
            }
        }
コード例 #6
0
        public string GetDefaultControllerTextsMessage(ControllerInputIndex defaultStringIndex)
        {
            switch (defaultStringIndex)
            {
            case ControllerInputIndex.right: return("[Click] Rotate right");

            case ControllerInputIndex.left: return("[Click] Rotate left");

            case ControllerInputIndex.up: return("[Click] Move up");

            case ControllerInputIndex.down: return("[Click] Move down");

            case ControllerInputIndex.mid: return("[Click] Confirm");

            case ControllerInputIndex.trigger: return("Hold Trigger");

            default: return("");
            }
        }
コード例 #7
0
        void HandleTouchpad_Tutorial(ButtonStage buttonStage, Vector2 axis)
        {
            if (IsTutorialOn)
            {
                previosuInput = currentInput;
                currentInput  = GetCurrentSprite(axis);
                ViveSR_Experience_IButton CurrentButton = ViveSR_Experience_Demo.instance.Rotator.CurrentButton;

                #region VIVEPro
                if (ViveSR_Experience.instance.CurrentDevice == DeviceType.Vive)
                {
                    switch (buttonStage)
                    {
                    case ButtonStage.Press:
                        InputHandlers[CurrentButton.ButtonType].MatchRotator();
                        break;

                    case ButtonStage.PressUp:
                        InputHandlers[CurrentButton.ButtonType].MatchRotatorUp();
                        break;

                    case ButtonStage.PressDown:
                        InputHandlers[CurrentButton.ButtonType].ConfirmSelection();
                        break;

                    case ButtonStage.TouchUp:
                        InputHandlers[CurrentButton.ButtonType].ResetTouchpadSprite();
                        break;

                    case ButtonStage.Touch:
                        InputHandlers[CurrentButton.ButtonType].SetTouchpadText(axis);
                        break;
                    }
                }
                #endregion
                #region VIVET2
                else if (ViveSR_Experience.instance.CurrentDevice == DeviceType.ViveT2)
                {
                    switch (buttonStage)
                    {
                    case ButtonStage.Press:
                        InputHandlers[CurrentButton.ButtonType].MatchRotator();
                        break;

                    case ButtonStage.PressUp:
                        InputHandlers[CurrentButton.ButtonType].MatchRotatorUp();
                        break;

                    case ButtonStage.PressDown:
                        InputHandlers[CurrentButton.ButtonType].ConfirmSelection();
                        break;

                    case ButtonStage.TouchUp:
                        InputHandlers[CurrentButton.ButtonType].ResetTouchpadSprite();
                        break;

                    case ButtonStage.Touch:
                        InputHandlers[CurrentButton.ButtonType].SetTouchpadText(axis);
                        if (currentInput != previosuInput)
                        {
                            InputHandlers[CurrentButton.ButtonType].MatchRotator();
                        }
                        break;
                    }
                }
                #endregion
            }
        }