private static Vector2 GetResolvedAxis2D(Axis2D virtualMask, RawAxis2D rawMask, Controller controllerMask) { Vector2 maxAxis = Vector2.zero; if ((controllerMask & Controller.Active) != 0) controllerMask |= activeControllerType; for (int i = 0; i < controllers.Count; i++) { OVRControllerBase controller = controllers[i]; if (ShouldResolveController(controller.controllerType, controllerMask)) { RawAxis2D resolvedMask = rawMask | controller.ResolveToRawMask(virtualMask); if ((RawAxis2D.LThumbstick & resolvedMask) != 0) { Vector2 axis = new Vector2( controller.currentState.LThumbstick.x, controller.currentState.LThumbstick.y); maxAxis = CalculateAbsMax(maxAxis, axis); } if ((RawAxis2D.RThumbstick & resolvedMask) != 0) { Vector2 axis = new Vector2( controller.currentState.RThumbstick.x, controller.currentState.RThumbstick.y); maxAxis = CalculateAbsMax(maxAxis, axis); } } } maxAxis = CalculateDeadzone(maxAxis, AXIS_DEADZONE_THRESHOLD); return maxAxis; }
private Vector2 GetResolvedAxis2D(Axis2D virtualMask, RawAxis2D rawMask, ControllerType controllerMask) { if (!OVRManager.instance.isVRPresent) return Vector2.zero; Vector2 maxAxis = Vector2.zero; if ((controllerMask & ControllerType.Active) != 0) controllerMask |= activeControllerType; for (int i = 0; i < controllers.Count; i++) { OVRControllerBase controller = controllers[i]; RawAxis2D resolvedMask = rawMask | controller.ResolveToRawMask(virtualMask); if (ShouldResolveController(controller.controllerType, controllerMask)) { if ((RawAxis2D.LThumbstick & resolvedMask) != 0) { Vector2 axis = new Vector2( controller.currentInputState.LThumbstick.x, controller.currentInputState.LThumbstick.y); maxAxis = CalculateMax(maxAxis, axis); } if ((RawAxis2D.RThumbstick & resolvedMask) != 0) { Vector2 axis = new Vector2( controller.currentInputState.RThumbstick.x, controller.currentInputState.RThumbstick.y); maxAxis = CalculateMax(maxAxis, axis); } } } return maxAxis; }
/// <summary> /// Gets the current state of the given raw 2-dimensional axis mask on the given controller mask. /// Returns the vector of the largest masked axis across all masked controllers. Values range from -1 to 1. /// </summary> public static Vector2 Get(RawAxis2D rawMask, Controller controllerMask = Controller.Active) { return GetResolvedAxis2D(Axis2D.None, rawMask, controllerMask); }
/// <summary> /// Gets the current state of the given raw 2-dimensional axis mask on the given controller mask. /// Returns the vector of the largest masked axis across all masked controllers. Values range from -1 to 1. /// </summary> public static Vector2 Get(RawAxis2D rawMask, ControllerType controllerMask) { return OVRManager.input.GetResolvedAxis2D(Axis2D.None, rawMask, controllerMask); }