Maze / Library /PackageCache /com.unity.inputsystem@1.6.1 /InputSystem /Controls /Processors /ClampProcessor.cs
| using UnityEngine.Scripting; | |
| ////TODO: move clamping settings into struct and add process function; then embed both here and in AxisControl | |
| namespace UnityEngine.InputSystem.Processors | |
| { | |
| /// <summary> | |
| /// Clamp a floating-point input to between <see cref="min"/> and <see cref="max"/>. This is equivalent | |
| /// to <c>Mathf.Clamp(value, min, max)</c>. | |
| /// </summary> | |
| /// <remarks> | |
| /// This processor is registered (see <see cref="InputSystem.RegisterProcessor{T}"/>) under the name "clamp" by default. | |
| /// | |
| /// Note that no normalization is performed. If you want to re-normalize the input value after clamping, | |
| /// add a <see cref="NormalizeProcessor"/>. Alternatively, add a <see cref="AxisDeadzoneProcessor"/> which | |
| /// both clamps and normalizes. | |
| /// | |
| /// <example> | |
| /// <code> | |
| /// </code> | |
| /// // Bind to right trigger on gamepad such that the value never drops below 0.3 and never goes | |
| /// // above 0.7. | |
| /// new InputAction(binding: "<Gamepad>/rightTrigger", processors: "clamp(min=0.3,max=0.7)"); | |
| /// </example> | |
| /// </remarks> | |
| public class ClampProcessor : InputProcessor<float> | |
| { | |
| /// <summary> | |
| /// Minimum value (inclusive!) of the accepted value range. | |
| /// </summary> | |
| public float min; | |
| /// <summary> | |
| /// Maximum value (inclusive!) of the accepted value range. | |
| /// </summary> | |
| public float max; | |
| /// <summary> | |
| /// Clamp <paramref name="value"/> to the range of <see cref="min"/> and <see cref="max"/>. | |
| /// </summary> | |
| /// <param name="value">Input value.</param> | |
| /// <param name="control">Ignored.</param> | |
| /// <returns>Clamped value.</returns> | |
| public override float Process(float value, InputControl control) | |
| { | |
| return Mathf.Clamp(value, min, max); | |
| } | |
| /// <inheritdoc/> | |
| public override string ToString() | |
| { | |
| return $"Clamp(min={min},max={max})"; | |
| } | |
| } | |
| } | |