/// <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; }
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); } }
/// <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; } }
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); } }
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); } }
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; } }