Unity Input System

Building a Professional FPS Controller & Rebinding System

I’m Tee, one of the game developers at IOdaw Games.

What you’ll learn

  • Install the Unity Input System package into a project.
  • Build Action Maps, Actions, and Bind them to keys using of Unity’s Input System.
  • Use the action maps to control and manage GameObjects inside of Unity.
  • Learn the different types of Actions, and how to use them.
  • Learn how to code your project so the users can rebind thier controls to keys they choose.

Course Content

  • Introduction –> 1 lecture • 2min.
  • Project Setup –> 4 lectures • 17min.
  • Input Action / Handler –> 3 lectures • 20min.
  • Player Script –> 1 lecture • 12min.
  • Challenge – Creating an Input Action for Sprinting –> 2 lectures • 6min.
  • Movement –> 2 lectures • 16min.
  • Rotation –> 2 lectures • 17min.
  • Rebinding –> 4 lectures • 35min.
  • Summary –> 1 lecture • 4min.

Unity Input System

Requirements

I’m Tee, one of the game developers at IOdaw Games.

We’ve designed this course to not only give you the skills to “make the new Input System work” but also the tips to “make it professional.”

In this series, we aren’t going to be using the Unity Player Input component. We aren’t just going to drag and drop a script and call it a day. We are going to adopt a code-driven workflow used by professional studios. We will generate C# classes directly from our Input Assets, giving us strong typing and total control over our code.

What we will build together:

We will build a fully functional First Person Controller from an empty project.

You will learn how to:

  • Architect for Scalability: We will separate our concerns by building a dedicated Input Handler that listens for raw events and passes that data to a Player Movement script. This ensures your game logic remains clean and your input logic stays flexible.
  • Handle Complex Inputs: We’ll map Actions for Jumping, Sprinting, Movement (Vector2), and Mouse Look (Delta), binding them to keyboard and mouse inputs.
  • Create a Rebinding System: We believe every game today should give the player the ability to rebind the controls to their preferences.  To that end, we will take the comprehensive UI that Unity provides and make it our own, customizing its look and its code.
  • Persist User Data: A rebinding system is useless if it resets when the game closes. We will write a custom Save/Load system using JSON and PlayerPrefs to ensure your players’ preferences are remembered.

Why this course?

Most tutorials show you the “easy” way to use the Input System. This course will have you write the code that actually controls and drives the player GameObject. By the end of this series, you won’t just have a character that moves; you will have a robust, reusable Input Architecture that you can drop into any future project.

Get Tutorial