Unity new Input System : Player Input Component (Part XII)

Matteo Lo Piccolo
4 min readJan 5, 2022


This is the last article on the new input system, and we talk about PlayerInput component.

The reference to the PlayerInput component is here:

The part we intersted in for this article is this :

As we can read above, this component doesn’t do different things, it’s just an “integrated method” to create the same function as when we code.
But it’s good to know that it exists and how to implement it.

As always we need the Input System from Package Manager

Window -> Package Manager -> Input System

P.S. Remember to change “In Project” to “Unity Registry” or you not find it.

Ok, now we create a simple Cube in our Scene and called it Player

Now, what we need to do is simply add the Player Input Component to our Player

Inside Scripts folder, I create another folder and I called it InputSystem.
Now, in the Player Input component, we select Create Actions

After we press it, we select InputSystem folder as destination to save it (I called it as always, PlayerImputActions)

and drag and drop it into Player Input component

Double click to open it.

As we can see, with this path when we open it we have already some things set up.
For example, if we go to Player -> Move, we can see that we have already some implementations

And even the UI

The next step it, and it’s really simple, is going to Player Input component, select Default Scheme -> KeyboardMouse
Then go to Behaviour, and change
“Send Message” to “Invoke Unity Events”

Now we need need another script for Player.
We can call it PlayerController, PlayerActions, PlayerInput, as we like

This is mine

And we need to add using UnityEngine.InputSystem

Now let’s write some line of code:

first we declare a Vector2 moveDir.
Then we need two method :

We create OnMove() with InputAction.CallbackContext parameter to read the value of Vector2, and Move()

Inside it we have directly implementation of moving with transform.Translate(), and we call it in Update

And we need a float speed variable to multiply in Move()

Now we are ready to go, in the next article we finish this implementation!



Matteo Lo Piccolo

Always in love with programming, even if late (I'm already 39 years old) I decided to follow my dream! We will see how far my passion will take me!