Exemple #1
0
	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;
    }
Exemple #3
0
	/// <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);
 }