Control Remapping System

Hi, I want to work on the control remapping system. Would we be using the new Unity’s Input System?
Would anyone like to join? :smile:

2 Likes

Hi luis! I would love to help on the control system!

2 Likes

just saying for faster communication, is we allow to use another platform to communicate? since from what i see to get faster feedback we used something like discord or slack.
I guess unity discord can have another section for project contributor(?)

1 Like

@jodyruben this is being thought about already by @cirocontinisio :), we’ll let the community know once we know more about that

1 Like

Thank you so much, @MileyUnity ! :smile:

1 Like

Hi there!
I was checking out the roadmap, and I’d like to work on creating remappable controls (card Codecks)

Since no UI is up yet, so far as I can see, I think I can just create the backend code for this. The best way I can think of is using InputAction.PerformInteractiveRebinding()… This can be wrapped in a public function that accepts an InputActionReference , so later any UI button can just call this and pass the relevant ScriptableObject

I’m open to suggestions on any better ways to do this. If this is acceptable, can I send a Pull Request?

Note: I tried using inline code, but for some reason it was not formatting correctly and wrapping each segment with line breaks

Hi @aayushsabharwal and @luisquid , I think that at this point in time it’s still to early to start working on remappable controles as we barely have our controls in place. @cirocontinisio feel free to correct me here :slight_smile:

We are still making the Game settings system and Control Remapping System is just a part of it so i would suggest that we should complete that first before starting on this.

I would like to make the controll remapping.
I have experience with makeing controller remapping and i even made my own input system at some point.

I understand. This makes sense. I’ll find somewhere else I can lend a hand. Jumped on this since most other things seemed to be taken.

Yeah a lot of tasks have already been taken atm, don’t worry though, this project will take months so there will be more than enough opportunities for everyone to contribute to the project :slight_smile:

1 Like

Totally agree. I’ve already implemented some basic implementation of controls remapping setting (or if we are talking using new input system terminology - input binding overrides).

Here you can look at InputBindingsSetting.cs:
https://github.com/UnityTechnologies/open-project-1/pull/60/files

It just saves/loads binding overrides of the current InputActionAsset. It’s very generic. There are no requirements on how to implement the UI etc.

I’ll definitely be taking a look we might be able to merge it with the current PR

Hi, I would like to work with remapping system.

I will use https://open.codecks.io/unity-open-project-1/decks/15/card/14j-control-remapping-system as a refererence.

Card: https://open.codecks.io/unity-open-project-1/decks/15/card/14j-control-remapping-system

I’d like to start working on this system.
I’m thinking of a settings page which lists all in-game controls and allows the player to freely remap them. The player will also have the ability to save an unlimited (or limited? I’m undecided) number of presets (different presets for keyboard&mouse and gamepad), while a few default ones already account for different keyboard layouts. The game will automatically pick the best fitting default preset based on locale.

Below is a rough sketch of a possible layout for such a page (“left stick” and “south” to be replaced with icons).

Sorry I just now noticed that there’s already another thread. I was looking for a thread tagged “official”, so I missed it.

Yes, and my fault, I tagged it now. I merged your message with the pre-existing thread (aka this one :))

As a programmer I love everything you are talking about, but it’s probably good to keep in mind that if the Input rebinding will be complex, nobody will use it, and that’s just a waste of effort. Adding new bindings and saving presets goes too far I think, but I’m a huge fan of default presets! And, get this: what if we automatically assign it not based on locale, but on the players’ keyboard layout?

And yes, I want to work on this as well, if only that it’s something small and standalone I can do pretty stress-free over the weekend. I would love to see to the default presets myself if we’re going that way!

1 Like

I do like this feature, but I also agree that it might be too early in the development process to start working on it. Hopefully soon we will have a final list of the controls. Also, not sure if you knew this already but Unity has a great button remapping sample using the new Input System in the package manager.

2 Likes

Also see this: How do I…? | Input System | 1.1.1 which mentions InputAction.PerformInteractiveRebinding, as well as the Tanks Demo.

I didn’t try the Tanks Demo but I imported the Rebinding UI which was another Sample in the Input System package. It is indeed using PerformInteractiveRebinding, but I get bugs like

NullReferenceException while executing ‘onActionChange’ callbacks
UnityEngine.InputSystem.LowLevel.<>c__DisplayClass7_0:<set_onUpdate>b__0(NativeInputUpdateType, NativeInputEventBuffer*)
UnityEngineInternal.Input.NativeInputSystem:NotifyUpdate(NativeInputUpdateType, IntPtr) (at /home/bokken/buildslave/unity/build/Modules/Input/Private/Input.cs:120)

and the buttons don’t seem to update with my custom bindings. Maybe the scripts are old? When I need a binding system, I’ll try to make my own scripts using PerformInteractiveRebinding if the samples still don’t work.

1 Like