I’m trying to adapt my InputCodegen package to work with this Project-Wide Actions feature.
Is there any chance you will provide adequate editor-events regarding this feature?
I mean events to subscribe for like modified, deleted, renamed maps, actions, bindings?
Currently the way to detect change is to AssetPostprocessor.OnPostprocessAllAssets and check for the InputManager.asset.
But it is far from ideal, for starter, it doesn’t get called when you hit save. It gets called if you unfocus/focus the editor window, which is infuriating. Please be consistent with the other InputActionAsset editor and introduce the Save button and actually call save upon hitting it.
Having a list of ActionMaps in there would be beneficial too, it’s clunky to go around like InputSystem.actions.FindAction("Player/Interact").actionMap. It is severely backwards.
And it is sad I have to write C# accessors to avoid magic string queries. Again. And now it’s even more sad because the action-maps are inside the search string. Seriously?
And obviously ProjectInput.LoadBindingOverridesFromJson(json); too.
And the cherry on top if you give us a setting to change the ProjectInput class name. Which is a static class, so it is available from anywhere. You can SourceGenerate the whole thing and it’s less than a day work if you can change the InputSystem package and whatnot. I can do it and I have to do screwed things like upon OnPostProcessAllAssets I have to write an .additionalfile to call my source generator because there is no way to add the InputManager.asset as an additional file and even if there was, I have no access to the Yaml structural classes needed to deserialize the Yaml. You have all those, please do it.
Just wanted to log in and say that this is VERY welcome change. All the other stuff still works, it seems you can also supply your own default action asset instead. But just having a good, default asset available from the get-go and being able to easily poll them in code like this is fantastic. Feels like the best of the new system (actions) with the ease of use of the old system. Thank you!
That is exactly what I say. I still don’t know why the UI rework, but. As the system is exactly what it was before, I think that using a separate window or a nested project window is only a personal preference.
A question, is, how does Unity want to handle, let’s say, multiple players and rebinds? What are the prospective and next design choices after this feature? What are the compromises of this choice?
I say this because it seems like a big paradigm change from my perspective.
“The script does not enable or disable action maps. Project-wide action maps are enabled by default. This means unlike with the older Action assets, you do not need to enable individual action maps in your script before being able to use them.”
Looks like manually enabling action map still needed when fast play mode option used. @Schubkraft
We do have some ongoing work to support fast enter playmode better with Project-wide Actions, so this will be easier in a future release, but for now you may have to enable manually if using Fast Enter Play Mode (at least if you are disabling domain reload).
Note the 1.8.0-pre.2 release has some reported stability issues.
The input team is currently working to address these issues and react feedback provided.
Thank you for taking time to give feedback on this pre-release.
While the team are working toward the full 1.8.0 release, we suggest using 1.7.0 to avoid the stability issues.
I personally believe it’s better to have Input settings in a separate file, as it was before. If it comes with a default setup, it should be created within the project’s Assets folder, allowing users to modify it directly, including renaming it if desired.
Except that said 1.7.0 doesn’t work, there the bug that prevents you from adding actions because the windows doesn’t show (from the error I get, it’s something to do with the dark skin) and so the only usable one is 1.6 so far.
Any idea why controllers don’t work on MacOS?
Only Input Debugger is showing some “action” happening for the controls…
But “Listen” nor game input reacts to anything.
1.8.1. is an official release but we have not yet ported that to the current LTS versions. It is currently only recommended in the beta version. We are being more cautious with it since the project wide actions are a bigger change compared to the last releases which mostly contained bug fixes.
There is currently one more important bug we want to fix and then we reassess again. Making it the recommended version for an LTS is a bigger step compared to beta or a tech release.
Important information relating to Unity 6 Beta 15 and Input System 1.8.1
Input System 1.8.1 (as well as 1.8.0) package releases has the following known issues related to UI integration:
UI Toolkit implicitly requires a Project-wide Input Action asset to be created if the Input System package is installed in the project. Without a Project-wide Input Action asset configured, UI Toolkit will silently not respond to input.
uGUI requires the EventSystem node to be updated to reference the InputSystemUIInput component in order for uGUI to respond to input. Without this component (and the Active Input Backend set to “Input System Package (New)”) there will be an error message displayed.
The Unity Input team is currently working on a new Input System package patch release (1.8.2) to resolve issues mentioned above.
Currently, in Unity 6 Beta 15, when creating a new project from one of the available templates such as the 3D one, only the Input System backend is enabled with no Project-wide Input Action asset configured. This leads to issues mentioned above and may be resolved by any of the following (while we address the issues):
Manually resolved by creating a Project-wide Input Action asset in your current project and either manually setting your Input backend to “Both” or updating the EventSystem object to use the InputSystemUIInput component
Resolved for new projects by updating to the latest version of the template you wish to use, which adds a default Project-wide Input Actions asset to the template to remove the requirement to setup Project-wide Input Action asset yourself as well as setting the Input backend to “Both”. Note that a restart of the editor is required to ensure that the Project-wide Input Action asset is automatically assigned.
I’ve posted a response about that issue unrelated to 1.8.x series in the other thread. I’ve surfaced the bug report to be public and added some information I think might be related.
In unity 6 and 6.1 using input system 1.11.2 project-wide input actions not working in build and in editor first time you go into playmode after building. In input debugger I can see that no input action is being loaded.
Using actions from generated file works perfectly fine.
Hey, I tried to reproduce your issue but wasn’t able to. Maybe we’re using the actions differently or it could be device specific. Could you send us a report via the built in bug reporter? (Help → Report a Bug…)