/// <summary> /// Casts the input arguments into intensity arguments. /// </summary> /// <param name="inputArgs">Input arguments of type IPositionalInputArgs.</param> /// <returns>Input args parsed into intensity args. Null if parsing failed.</returns> public static IIntensityTriggerArgs CastToIntensityArgs(IPositionalInputArgs inputArgs) => inputArgs as IIntensityTriggerArgs;
/// <summary> /// Casts the input arguments into vector movement arguments. /// </summary> /// <param name="inputArgs">Input arguments of type IPositionalInputArgs.</param> /// <returns>Input args parsed into vector movement args. Null if parsing failed.</returns> public static IVectorMovementInputArgs CastToVectorMovementArgs(IPositionalInputArgs inputArgs) => inputArgs as IVectorMovementInputArgs;
/// <summary> /// Gets position between start and end position. /// </summary> /// <param name="args">Arguments of the input event.</param> /// <returns>Focus point of the input.</returns> public static Vector2 GetFocusPoint(IPositionalInputArgs args) => args.StartPos + GetDirection(args) * GetMagnitude(args);
/// <summary> /// Casts the input arguments into delta movement arguments. /// </summary> /// <param name="inputArgs">Input arguments of type IPositionalInputArgs.</param> /// <returns>Input args parsed into delta movement args. Null if parsing failed.</returns> public static IDeltaMovementInputArgs CastToDeltaMovementArgs(IPositionalInputArgs inputArgs) => inputArgs as IDeltaMovementInputArgs;
/// <summary> /// Calls OnArgumentInputTriggered action of the owning InputReactionField and OnTap action of the MobileInput class. /// </summary> public override void Trigger(IPositionalInputArgs args) { owningInputReactionFields.ForEach(reactionField => reactionField.OnArgumentInputTriggered?.Invoke(args)); MobileInput.OnTap?.Invoke(args); }