From cb0fe6c046687f6d0a148d082ce79121dd188358 Mon Sep 17 00:00:00 2001 From: Tyson Moll / vvv Date: Sat, 28 Feb 2026 17:16:06 -0500 Subject: [PATCH 1/2] TwoAxisVector2Composite InputBindingComposite --- .../Composites/TwoAxisVector2Composite.cs | 46 +++++++++++++++++++ .../TwoAxisVector2Composite.cs.meta | 2 + 2 files changed, 48 insertions(+) create mode 100644 Packages/com.unity.inputsystem/InputSystem/Actions/Composites/TwoAxisVector2Composite.cs create mode 100644 Packages/com.unity.inputsystem/InputSystem/Actions/Composites/TwoAxisVector2Composite.cs.meta diff --git a/Packages/com.unity.inputsystem/InputSystem/Actions/Composites/TwoAxisVector2Composite.cs b/Packages/com.unity.inputsystem/InputSystem/Actions/Composites/TwoAxisVector2Composite.cs new file mode 100644 index 0000000000..f3189c2483 --- /dev/null +++ b/Packages/com.unity.inputsystem/InputSystem/Actions/Composites/TwoAxisVector2Composite.cs @@ -0,0 +1,46 @@ +#if UNITY_EDITOR +using UnityEditor; +using UnityEngine; +using UnityEngine.InputSystem; +using UnityEngine.InputSystem.Layouts; +using UnityEngine.InputSystem.Utilities; + + +#endif + +namespace UnityEngine.InputSystem.Composites +{ + /// + /// A Vector2 composite consisting of two Axis values. + /// + /// + /// This composite allows for two Axis inputs to be combined into a Vector2 representation. + /// + /// This is particularly useful for legacy Joysticks without Gamepad-promised Vector2 representations. + /// + [DisplayStringFormat("{xAxis}+{yAxis}")] + public class TwoAxisVector2Composite : InputBindingComposite + { + [InputControl(layout = "Axis")] + public int xAxis; + + [InputControl(layout = "Axis")] + public int yAxis; + + public override Vector2 ReadValue(ref InputBindingCompositeContext context) + { + var firstPartValue = context.ReadValue(xAxis); + var secondPartValue = context.ReadValue(yAxis); + + return new(firstPartValue, secondPartValue); + } + + static TwoAxisVector2Composite() + { + InputSystem.RegisterBindingComposite(); + } + + [RuntimeInitializeOnLoadMethod] + static void Init() { } // Trigger static constructor. + } +} \ No newline at end of file diff --git a/Packages/com.unity.inputsystem/InputSystem/Actions/Composites/TwoAxisVector2Composite.cs.meta b/Packages/com.unity.inputsystem/InputSystem/Actions/Composites/TwoAxisVector2Composite.cs.meta new file mode 100644 index 0000000000..e65379f2fb --- /dev/null +++ b/Packages/com.unity.inputsystem/InputSystem/Actions/Composites/TwoAxisVector2Composite.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 42bb5bf482de61a478150f4d825a9120 \ No newline at end of file From 9e1b71ba620c7594b5fe3a014d09d555b8066f8a Mon Sep 17 00:00:00 2001 From: Tyson Moll Date: Sat, 28 Feb 2026 17:20:27 -0500 Subject: [PATCH 2/2] Add TwoAxisVector2Composite to changelog --- Packages/com.unity.inputsystem/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Packages/com.unity.inputsystem/CHANGELOG.md b/Packages/com.unity.inputsystem/CHANGELOG.md index b0d94475a1..677b997df6 100644 --- a/Packages/com.unity.inputsystem/CHANGELOG.md +++ b/Packages/com.unity.inputsystem/CHANGELOG.md @@ -15,7 +15,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ### Changed ### Added - +- Added TwoAxisVector2Composite ## [1.19.0] - 2026-02-24