UPDATED Dec 12, 2017: We have made significant changes to our plans for the input system. Please read our forum post for details.
In Input Team we've been working on designing and implementing a new input system. We've made good progress, and though there's still a long way to go, we want to get you involved already now.
We've build a new foundation for working with input in a new way that we're excited to show you, and we want to continue the development with your input on the existing and continued design.
The new input system will consist of two parts. The low-level part is integrated into the C++ core of Unity. The high-level part is implemented in managed (C#) code that will be open-source in the same way as e.g. the UI system.
Our development process for the new input system is to design and implement large parts of the high level system first. Initially this is based on top of the current input system that already exists in Unity. For now, we call this the input system prototype. Later, once the new low-level core is more mature, we'll change the high-level part to be based on the new low-level system.
This means that the current high-level system (the prototype) lacks specific features that depend on the new low-level core, such as robust registration of connected and disconnected input devices while the game is running. However, many features of the design can already be used and tested, and this is particularly what we want early feedback on.
Here's how we'd like you to get involved:
Input that works well for a plethora of different use cases is a surprisingly tricky matter. We've prepared some resources for you to learn about how the new design attempts to address this.
First of all, we've created this video covering the design of action maps and player management. It's a good introduction to the new design.
We've also prepared a site with more information about the design, including a Quick Start Guide.
Head to the Experimental New Input System site to learn more.
We have a project folder which contains the input system prototype as well as a demo project which uses it. This can be used with regular Unity 5.3 without needing a special build.
Download it from the Experimental New Input System site.
The input system prototype can be tested with other projects by copying the folder Assets/input-prototype into the Assets folder of another project. (Please create a backup of your project first.)
What do you think about the design? How does it work (or not) for your project? Anything that's confusing or unclear? For now we're interested in discussion around the design of the system. We don't need bug reports quite yet at this stage in development.
Head to the New Input System Forum to discuss the new input system.
We're looking forward to working with you!