Rewired vs Input System feature image

Rewired vs the Unity Input System

In Input by John FrenchPublished Updated Leave a Comment

This article is part of a series on Unity's new Input System.

Rewired is an advanced input management system for Unity that’s built on top of the default Input Manager.

Unlike the Input Manager, which is easy to use but has some significant limitations, it’s highly customisable and flexible.

So much so that, for the longest time, if you needed to rebind a control, or support modern controllers in your game, you needed Rewired, or something like it, to be able to do it.

As a result, Rewired has been a must-have asset for many developers for years.

However, it is a paid product and, while it’s very reasonably priced, especially when you realise how much it can do compared to the Input Manager on its own, Unity’s new Input System is out of preview and is available to everyone for free.

So is Rewired still worth it, and should you be using it instead of the new Input System?

How does Rewired in Unity work?

When using Rewired for the first time, you’ll need to create at least one Player and set up some basic Actions.

Much like the new Input System, an Action acts as the middle step between a device’s input and the in-game behaviour it triggers.

This is important as it allows you to change the input that triggers an action, without changing the script that will respond to it.

Then, you’ll need to assign specific device controls from what is a massive list of supported devices:

Using Rewired instead of the new Unity Input System

Rewired’s list of supported devices is massive.

Just like Unity’s new Input System, this includes a generic Gamepad template to make setting up common controllers relatively straightforward.

But, unlike the older Input Manager, which has trouble recognising modern controllers (like the Switch Pro Controller for example), Rewired provides support for specific control devices as well as generic layouts.

In your scripts, the process of getting input from Actions when they’re triggered is similar to how the Input Manager works, except that you’ll be accessing data via a Rewired Player variable instead.

This is because Rewired is Player-Centric, meaning that, instead of getting a control input from a device or a particular type of input, you get it from a specific player instead.

Like this:

using UnityEngine;
using Rewired;

public class MovePlayer : MonoBehaviour
{
    Player player;
    Vector2 moveValue;

    private void Start()
    {
        player = ReInput.players.GetPlayer(0);
    }

    void Update()
    {
        if (player.GetButtonDown("Trigger"))
            {
                Debug.Log("Trigger was Pressed!");
            }

        GetMoveValue();
        MovePlayer();
    }

    void GetMoveValue()
    {
        float x = player.GetAxis("Horizontal");
        float y = player.GetAxis("Vertical");
        moveValue = new Vector2(x, y);
    }

    void MovePlayer()
    {
        transform.Translate(new Vector3(moveValue.x, moveValue.y, 0));
    }
}

This adds an additional layer of abstraction between inputs, their actions and which player will trigger them, making it easier to split up controls in a local multiplayer game.

But what is Rewired actually like to use, and is it better or worse than the free Input System?

What is Rewired like to use

Having spent some time with the Input Manager and with the new Input System, I wanted to find out how easy it is to get started with Rewired as an alternative.

And, to be honest, I was pleasantly surprised.

Following the official quick start guide, it was extremely simple to create basic movement controls.

And, while the Rewired Editor was a little confusing at first, it didn’t take long to get to grips with the structure of the system which, to me, felt like a mix between the old Input Manager and the new Input System.

That is, with one exception…

When I made mistakes setting up Rewired, the errors that were caused were obvious and easy to fix. This is good, and it helped me get up and running surprisingly quickly.

My initial experiences with the Input System were very much the same. It’s a new system, I wasn’t familiar with it, so I made mistakes.

The difference is that, when I got something wrong with the new Input System, I frequently found that nothing happened, but I didn’t necessarily know why.

As a result, Rewired can be much more reliable and predictable, despite the fact that it’s an extension of older technology, something that is reflected in the asset’s overwhelmingly positive reviews.

But would I pick it?

And would I recommend it?

What should you use? Rewired, or Unity’s new Input System

Both Rewired and Unity’s Input System are advanced input management systems with many, many features.

If the default Input Manager isn’t enough for you, and it probably isn’t in many cases, either option is an excellent alternative.

However…

While Rewired is tried and tested, with years of development, extensive documentation and excellent customer support, the new Input System, while very promising and, in my opinion, more intuitive, still feels very new in places, despite having been in development (and out of preview) for some time now.

Chances are that, if you want to do something very specific with it, you might have a hard time finding an example of it having been done before.

And, even now, in 2024, as I’m updating this article, while the Unity documentation for the Input System has definitely improved, I still get questions about how to actually make it work.

In contrast, Rewired is an older asset, originally released in 2014, but meticulously updated. It’s well-documented and widely adopted, meaning that you’re less likely to run into a problem and more likely to find a solution if you do.

However, because it’s older, and because it’s built on top of the old Input Manager, which may eventually become deprecated in newer versions of Unity, there’s a small chance that the asset may not be available to use in the future.

However, this is unlikely to happen and, chances are, the version of Unity you’re using today is probably going to be the one that you develop your project in anyway.

So what’s the answer?

Generally speaking, it depends on who you are and what you’re trying to get done.

For example, if I had to choose, right now, I’d probably pick Unity’s new Input System.

I like the intuitive interface, I found it slightly easier to use than Rewired and the features that I would want from it seemed to make a lot of sense to me.

It will also continue to get better, with each update improving and extending the system.

However…

I’m not a professional developer.

I don’t have any deadlines, I don’t need to implement any specific features, and I’m not trying to port a game to a specific platform.

I’m just a beginner, having fun with Unity.

And I would imagine that a professional developer, working on a commercial release, with money on the line, might need to be more sure of what their Input System is capable of doing.

They might need to know what it can do, what it can’t and if someone’s done it before.

And, right now, until Unity’s new Input System begins to catch up as a solid replacement, I’d suggest that Rewired is probably a safer bet for anyone who’s in that position.

But don’t take my word for it.

You can try out both systems for yourself and see which you prefer.

Unity’s Input System is, of course, free and while Rewired is a paid asset, you’ll find a link to try a free demo from their asset store page.

Now it’s your turn

Now I want to hear from you.

Are you using Rewired in Unity?

How do you like it compared to Unity’s new Input System?

And what have you learned about managing input in Unity that you know someone else would find useful?

Whatever it is, let me know by leaving a comment.

John French profile picture

by John French

Game audio professional and a keen amateur developer.

Get Game Development Tips, Straight to Your inbox

Get helpful tips & tricks and master game development basics the easy way, with deep-dive tutorials and guides.

How to CODE in Unity. Available to Pre Order Now. Game Dev Beginner.

Image Attribution

The Rewired logo is a trademark of Guavaman Enterprises.

Leave a Comment