
Explore four Unity input system approaches, from quick prototypes to commercial-ready setups, set up a simple 2D project with folders for scripts and sprites, and import the new input system.
A documentation update clarifies four main ways to use the new input system, noting that Unity merged two into one, and the course remains valid in Unity 6.
Install the new input system from the package manager and restart the Unity editor. Then enable the new or both input handling in the project settings.
Learn the direct keyboard workflow in Unity, with hard-coded controls using keyboard.current, detecting pressed, released, and held events. Understand its limitations and its quick device-specific use.
Obtain the current gamepad, verify connection, and detect button events for west, east, south, and north. Read the left stick as a vector2 and log its values in Unity.
Create a mouse variable set to current, check for null, detect left button presses, scroll with read value y, and read position with debug logs using direct workflow syntax.
Create 2D movement in all directions with a direct movement script using Rigidbody2D, zero gravity, and a box collider. Bind keyboard and gamepad input, normalize direction, and apply velocity.
Explore embedded workflow for Unity's input system, creating input actions, bindings, and listen button setups. Subscribe to performed and cancelled phases, and test with keyboard and gamepad bindings.
Learn to set up 2D vector binding for the move action, map WASD and gamepad left stick, and read Vector2 values via callbacks or update to move the character.
Create 2d movement in all directions with embedded workflow, and demonstrate a 1d left-right movement, noting that this workflow is hard to rebind and less suited for commercial games.
Learn two implementations of the new input system for a 2d platformer, mapping keyboard and gamepad controls, and using input values to animate idle, run, jump, and attack.
Create an input action asset, define action maps like player normal and underwater, add actions such as jump and move, and bind keys and gamepads for rebinding.
Organize actions into control schemes to group keyboard bindings apart from gamepad bindings, enabling rebinding and resetting to default values, and create keyboard mouse and gamepad schemes with assigned bindings.
Connect the action asset with code using the inspector reference approach, wiring jump, move, and attack actions to script variables, and subscribe to performed and canceled phases.
Apply the C# generated class approach to the Unity input system, enabling and using action maps and actions, reading values with ReadValue<float>, and subscribing to jump and other phases.
Move player using action asset workflow by sharing input values from the gather input script to player controls script, updating velocity for movement in fixed update on a 2D rigidbody.
Flip the player by rotating its transform 180 degrees when moving left or right, controlled by a facing right boolean and a dedicated flip function called during update.
Create a simple jump by applying a jump force on input, preserve horizontal movement, and switch collision detection to continuous to prevent falling through the ground.
Create a new C sharp script named tech controls, attach it to the player, and check gather input to start the attack when try to attack is true.
Learn to connect input values to Unity animations by creating idle and run transitions and a speed x parameter, and implement a script to set this parameter from input.
Set up a one-dimensional blend tree for jump up and jump down using speed y and grounded, with two motion fields and transitions to jump three and back to idle.
Implement a Unity attack animation using a bool parameter, set transitions to attack and back to idle, manage the animator reference, and reset via an animation event.
Configure and apply interactions to actions and bindings, including hold time, slow tap, and multi-tap, to control the jump action via settings assets.
Discover how processors modify input values with invert, scale, clamp, and deadzone for actions and bindings. Learn how the order and type (1D axis, 2D vector, 3D vector) affect results.
Explore how the started phase triggers when pressing the binding and how the performed phase fires after interactions complete, demonstrated with a jump action using a hold duration in Unity.
Explore an additional approach with the Action Asset in Unity, using the inspector reference jump action and per-frame checks: was pressed, was performed, and was released.
Bind actions with modifiers using composite bindings, such as left shift and left mouse button, to trigger a special attack; enable input consumption to prevent the basic attack.
Snap gamepad axis values to -1, 0, or 1 with a deadzone processor to ensure even movement; adjust dead zones or use code in Gather Input script to constrain values.
Prepare the player input workflow by configuring an action asset and the player input component, enabling rebinding, editor-driven setup, and cross-device control schemes (keyboard/mouse and gamepad) across four approaches.
Explore the send messages approach to trigger on move and on attack actions, handle input, and move a 2D rigidbody via velocity in fixed update.
Demonstrate broadcast messages in the Unity input workflow for handling input on child objects; bind the mouse left button and log results, noting send messages require the player input component.
Explore invoking unity events by wiring player input actions to unity events, handling started, performed, and cancelled phases, and wiring move and attack callbacks for flexible cross-object scripting.
Learn the latest player input workflow by invoking c# events, wiring attack and move actions in the player input component, and managing action maps for smooth movement.
Master move and idle animations for four directions in Unity by wiring an animator with x and y directional parameters and a moving bool, using blend trees and zero-duration transitions.
If you struggle with the new Input System, or you want to transfer your projects from the old input system and create a functional rebinding system, then you are at the right place.
You can easily follow the course by downloading Unity projects: 2D Platformer and 2D top-down RPG perspective. After you download them, unzip them and open them through Unity Editor. Then you are ready to start following the lectures. Of course, if you wish, you can use your assets. We will also quickly analyze the input of Unity's official 3D asset and see which workflow they use.
In this course, you will learn how to use the new Input System in 4 main ways:
Direct
Embedded Actions
Actions Asset
Player Input Component
Some of the main ways have iterations within them, and of course, we will go through all those iterations. This gives you knowledge and options to choose what is the best option for your game and coding style.
In the last part of the course, we will create a custom rebinding system. This system is really important if you want to make serious commercial games.
Trust me, I have seen it multiple times, you can get negative reviews on Steam if you don't have a rebinding system. User experience is limited if players can't adjust the game and controls for their needs. So, every commercial game needs a rebinding system.
The rebinding system from this course is unique, you won't find tutorials about it anywhere else. The system will automatically detect and swap duplicate bindings. The changes are persistent, meaning they will be preserved between play sessions.
So, improve your game development skills, learn the new input system in the right way, and create a professional rebinding system that players can use to set up custom controls.
Customer Support:
I respond to all messages if you get stuck anywhere or need help.
Thank you for your time and see you in the course lessons.