コード例 #1
0
        /// <summary>
        /// Reset all parameters to their default values
        /// </summary>
        public void ResetParameters()
        {
            UseGaze            = false;
            DefaultDistance    = 200.0f;
            UseNormal          = true;
            ReticleSize        = Vector3.one;
            GazeExclusionLayer = 0;

            ReticleColor       = Color.red;
            ReticleTargetColor = Color.red;

            GazePointerState = EPointerState.ON;

            ColorOnReticleBackgroud = Color.blue;
            ColorOnReticleTarget    = Color.blue;

            ColorOffReticleBackgroud = Color.red;
            ColorOffReticleTarget    = Color.red;

            ColorSelectableReticleBackgroud = Color.green;
            ColorSelectableReticleTarget    = Color.green;

            UseDifferentStates = false;

            GazeButtonOVR       = EControllersInput.NONE;
            GazeButtonOpenVR    = EControllersInput.NONE;
            GazeButtonSimulator = EControllersInput.NONE;
        }
コード例 #2
0
    public static string GetTouchVariableFor(EControllersInput input)
    {
        switch (input)
        {
        case (EControllersInput.LEFT_TRIGGER):
        case (EControllersInput.RIGHT_TRIGGER):
            return("TriggerIsTouching");

        case (EControllersInput.LEFT_THUMBSTICK):
        case (EControllersInput.RIGHT_THUMBSTICK):
            return("ThumbIsTouching");

        case (EControllersInput.A_BUTTON):
            return("AButtonIsTouching");

        case (EControllersInput.B_BUTTON):
            return("BButtonIsTouching");

        case (EControllersInput.X_BUTTON):
            return("XButtonIsTouching");

        case (EControllersInput.Y_BUTTON):
            return("YButtonIsTouching");

        case (EControllersInput.LEFT_THUMBREST):
        case (EControllersInput.RIGHT_THUMBREST):
            return("ThumbrestIsTouching");

        default:
            Debug.LogError("The EControllersInput provided is null.");
            return(null);
        }
    }
コード例 #3
0
        /// <summary>
        /// We check which hand correspond to the Action Button that was choosen
        /// </summary>
        private void CheckButtonHand()
        {
            EControllersInput gazeClick = GetGazeClick();

            // If we use the Gaze Button but the Controllers are inactive
            if (UseGazeButton && !_controllersParameters.UseControllers)
            {
                this.enabled = false;
                throw new Exception("The Button Action Choser parameters for the " + this.GetType().Name + " script are invalid.\n" +
                                    "If you want to use the Gaze Click, please activate the Controllers by setting the UseControllers bool in the Window VRSF/Controllers Parameters to true.\n" +
                                    "Disabling the script.");
            }
            // If we use the Gaze Button but the chosen gaze button is None
            else if (UseGazeButton && gazeClick == EControllersInput.NONE)
            {
                this.enabled = false;
                throw new Exception("The Button Action Choser parameters for the " + this.GetType().Name + " script are invalid.\n" +
                                    "Please specify a GazeButton in the Gaze Parameters Window to use the Gaze Click feature. Disabling the script.");
            }

            // if the Action Button is set to the Wheel Button (SIMULATOR SPECIFIC)
            else if (ActionButton == EControllersInput.WHEEL_BUTTON)
            {
                _isUsingWheelButton = true;
            }

            // if the Action Button is set to the A, B or Right Thumbrest option (OCULUS SPECIFIC)
            else if (ActionButton == EControllersInput.A_BUTTON || ActionButton == EControllersInput.B_BUTTON || ActionButton == EControllersInput.RIGHT_THUMBREST)
            {
                _isUsingOculusButton = true;
                _buttonHand          = EHand.RIGHT;
            }
            // if the Action Button is set to the X, Y or Left Thumbrest option (OCULUS SPECIFIC)
            else if (ActionButton == EControllersInput.X_BUTTON || ActionButton == EControllersInput.Y_BUTTON || ActionButton == EControllersInput.LEFT_THUMBREST)
            {
                _isUsingOculusButton = true;
                _buttonHand          = EHand.LEFT;
            }

            // if the Action Button is set to the Right Menu option (VIVE AND SIMULATOR SPECIFIC)
            else if (ActionButton == EControllersInput.RIGHT_MENU)
            {
                _isUsingViveButton = true;
                _buttonHand        = EHand.RIGHT;
            }

            // If non of the previous solution was chosen, we just check if the button is on the right or left controller
            else if (ActionButton.ToString().Contains("RIGHT"))
            {
                _buttonHand = EHand.RIGHT;
            }
            else if (ActionButton.ToString().Contains("LEFT"))
            {
                _buttonHand = EHand.LEFT;
            }
        }
コード例 #4
0
    public static string GetClickVariableFor(EControllersInput input)
    {
        switch (input)
        {
        case (EControllersInput.LEFT_TRIGGER):
        case (EControllersInput.RIGHT_TRIGGER):
            return("TriggerIsDown");

        case (EControllersInput.LEFT_GRIP):
        case (EControllersInput.RIGHT_GRIP):
            return("GripIsDown");

        case (EControllersInput.LEFT_MENU):
        case (EControllersInput.RIGHT_MENU):
            return("MenuIsDown");

        case (EControllersInput.LEFT_THUMBSTICK):
        case (EControllersInput.RIGHT_THUMBSTICK):
            return("ThumbIsDown");

        case (EControllersInput.A_BUTTON):
            return("AButtonIsDown");

        case (EControllersInput.B_BUTTON):
            return("BButtonIsDown");

        case (EControllersInput.X_BUTTON):
            return("XButtonIsDown");

        case (EControllersInput.Y_BUTTON):
            return("YButtonIsDown");

        default:
            Debug.LogError("The EControllersInput provided is null.");
            return(null);
        }
    }
コード例 #5
0
    public static string GetUpGameEventFor(EControllersInput input)
    {
        switch (input)
        {
        case (EControllersInput.LEFT_TRIGGER):
        case (EControllersInput.RIGHT_TRIGGER):
            return("TriggerUp");

        case (EControllersInput.LEFT_GRIP):
        case (EControllersInput.RIGHT_GRIP):
            return("GripUp");

        case (EControllersInput.LEFT_MENU):
        case (EControllersInput.RIGHT_MENU):
            return("MenuUp");

        case (EControllersInput.LEFT_THUMBSTICK):
        case (EControllersInput.RIGHT_THUMBSTICK):
            return("ThumbUp");

        case (EControllersInput.A_BUTTON):
            return("AButtonUp");

        case (EControllersInput.B_BUTTON):
            return("BButtonUp");

        case (EControllersInput.X_BUTTON):
            return("XButtonUp");

        case (EControllersInput.Y_BUTTON):
            return("YButtonUp");

        default:
            Debug.LogError("The EControllersInput provided is null.");
            return(null);
        }
    }
コード例 #6
0
        private void DisplayThumbPosition(EControllerInteractionType interactionType, EControllersInput inputSide)
        {
            switch (interactionType)
            {
            case EControllerInteractionType.CLICK:
                switch (inputSide)
                {
                case EControllersInput.LEFT_THUMBSTICK:
                    EditorGUILayout.LabelField("Left Thumb Position to use for this feature", EditorStyles.miniBoldLabel);
                    _buttonActionChoser.LeftClickThumbPosition = (EThumbPosition)EditorGUILayout.EnumFlagsField("Thumb Click Position", _buttonActionChoser.LeftClickThumbPosition);
                    _leftThumbPosIsShown = true;
                    break;

                case EControllersInput.RIGHT_THUMBSTICK:
                    EditorGUILayout.LabelField("Right Thumb Position to use for this feature", EditorStyles.miniBoldLabel);
                    _buttonActionChoser.RightClickThumbPosition = (EThumbPosition)EditorGUILayout.EnumFlagsField("Thumb Click Position", _buttonActionChoser.RightClickThumbPosition);
                    _rightThumbPosIsShown = true;
                    break;
                }
                _buttonActionChoser.ClickThreshold = EditorGUILayout.Slider("Click Detection Threshold", _buttonActionChoser.ClickThreshold, 0.0f, 1.0f);
                break;

            case EControllerInteractionType.TOUCH:
                switch (inputSide)
                {
                case EControllersInput.LEFT_THUMBSTICK:
                    EditorGUILayout.LabelField("Left Thumb Position to use for this feature", EditorStyles.miniBoldLabel);
                    _buttonActionChoser.LeftTouchThumbPosition = (EThumbPosition)EditorGUILayout.EnumFlagsField("Thumb Touch Position", _buttonActionChoser.LeftTouchThumbPosition);
                    _leftThumbPosIsShown = true;
                    break;

                case EControllersInput.RIGHT_THUMBSTICK:
                    EditorGUILayout.LabelField("Right Thumb Position to use for this feature", EditorStyles.miniBoldLabel);
                    _buttonActionChoser.RightTouchThumbPosition = (EThumbPosition)EditorGUILayout.EnumFlagsField("Thumb Touch Position", _buttonActionChoser.RightTouchThumbPosition);
                    _rightThumbPosIsShown = true;
                    break;
                }
                _buttonActionChoser.TouchThreshold = EditorGUILayout.Slider("Touch Detection Threshold", _buttonActionChoser.TouchThreshold, 0.0f, 1.0f);
                break;
            }
        }