Documentation index for AI agents (llms.txt) A Markdown version of every page is available: request the page's source under /docs/, follow the "alternate" link in this page's head, or start from /llms.txt.
Visual Script logo Manual

Gamepad Stick Magnitude#

Input / Gamepad Stick Magnitude

  • Can Read

  • Cannot Write

Description#

Returns how far the specified Gamepad stick is deflected

Parameters#

Name Description
Stick Which stick of the current Gamepad is read

Code#

using System;
using UnityEngine;
using UnityEngine.InputSystem;
using VisualScript.Icons;

namespace VisualScript.Runtime
{
    [Get]

    [Inline(nameof(m_Stick))]

    [Title("Gamepad Stick Magnitude")]
    [Category("Input/Gamepad Stick Magnitude")]

    [Description("Returns how far the specified Gamepad stick is deflected")]
    [Image(typeof(IconJoystick), ColorTheme.Type.Blue, typeof(BadgeSpeed))]

    [Parameter("Stick", "Which stick of the current Gamepad is read")]

    [Keywords("Analog", "Joystick", "DPad", "Length", "Amount", "Tilt")]

    [Serializable]
    public class TypeNumberInputGamepadStickMagnitude : TypeNumber
    {
        [SerializeField] private GamepadStick m_Stick = GamepadStick.Left;

        public override double Get(Args args)
        {
            Gamepad gamepad = Gamepad.current;
            if (gamepad == null) return 0d;

            Vector2 value = this.m_Stick switch
            {
                GamepadStick.Left => gamepad.leftStick.ReadValue(),
                GamepadStick.Right => gamepad.rightStick.ReadValue(),
                GamepadStick.DirectionalPad => gamepad.dpad.ReadValue(),
                _ => throw new ArgumentOutOfRangeException()
            };

            return value.magnitude;
        }

        public override string ToString()
        {
            return $"Gamepad {this.m_Stick} Magnitude";
        }

        protected override SubscriptionMode Subscription => SubscriptionMode.OnChange;
    }
}
Visual Script logoVisual Script © Catsoft Works 2026. All rights reserved.