Search Unity

  1. We are migrating the Unity Forums to Unity Discussions. On July 12, the Unity Forums will become read-only. On July 15, Unity Discussions will become read-only until July 18, when the new design and the migrated forum contents will go live. Read our full announcement for more information and let us know if you have any questions.

Official Project-Wide Actions - 1.8.0-pre.2 release - Feedback wanted - new update released

Discussion in 'Input System' started by Schubkraft, Sep 6, 2023.

  1. Schubkraft

    Schubkraft

    Unity Technologies

    Joined:
    Dec 3, 2012
    Posts:
    1,078
    See new post further down for the latest version!

    ======================================

    Hello Input System users!


    We just released a preview release of the Input System (1.8.0-pre.1) which contains a new feature called Project-wide Actions. We would love to get your feedback after trying it out. Since this is a pre-release feature your feedback will go a long way in shaping it and improving it for everyone else. Please use this form for your comments https://forms.gle/67brxDs5xWtzGGmz9


    We added default project wide actions which should help with prototyping and improve some of the main workflows of the Input System. These actions are available from the Input System settings tab in the Project Settings.





    Installation
    You can go to Package Manager -> Add Package and add it to a project there if Input System isn't already present in your project.
    Otherwise you can manually edit your <project>/Packages/manifest.json file and add "com.unity.inputsystem": "1.8.0-pre.1" to the dependencies.

    Once backports land it will also be discoverable in the package manager if preview packages are enabled in the Preferences.

    The minimum Unity version needed is 2022.3.0.


    KNOWN ISSUES
    • When opening the Input Debugger window, the window can be empty on first install. To workaround this issue try switching the Input backends back and forth in the Project Settings -> Player menu.
    • The Project Settings -> Input Manager can also be broken on first installs, to fix this try switching the Input backends back and forth in the Project Settings -> Player menu.

    • These newly added project wide input actions are modifiable but currently, there is no way to reset them to their defaults, please keep that in mind when modifying them.
    Thank you!
     
    Last edited: Nov 14, 2023
    Celezt, Ofx360, mariandev and 4 others like this.
  2. Deleted User

    Deleted User

    Guest

    Looks interesting. :)
     
  3. PaulMDev

    PaulMDev

    Joined:
    Feb 19, 2019
    Posts:
    74
    I don't know about this.
    It does make it easier to learn the input system which is great. But not having the flexibility of assets feels a bit dangerous on a large project.
    Generally I think project-wide settings should be avoided.

    I think it goes back to the compromise of making the tool easy to learn or making it robust for big projects.
    Maybe having the window show all of the Input Actions assets that were found in the project, and creating one by default when installing the package would achieve the same thing?

    (I wasn't able to access the from, did you close it?)
     
    Last edited: Sep 24, 2023
    Abdo-Reda and Walter_Hulsebos like this.
  4. Schubkraft

    Schubkraft

    Unity Technologies

    Joined:
    Dec 3, 2012
    Posts:
    1,078
    You can still create new action map assets yourself and use them just as before. The global actions are just a default set that you can use to start with and expand if needed.

    Wiil check on the form tomorrow when I'm back at the office.
     
  5. Here is some *khm* grumpy feedback just in case. I still standing astonished how you guys don't talk to each other. Every fricking department develops their own solution to problems. Why wouldn't you use the already editor-wide standard method to embed an action asset in the settings page like the: input settings, URP settings, HDRP settings (just from the top of my mind) do? Now you will be chasing a metric ton of silly bugs instead of rely on the more mature editor you already have... Anyway.
     
    BTStone likes this.
  6. Schubkraft

    Schubkraft

    Unity Technologies

    Joined:
    Dec 3, 2012
    Posts:
    1,078
    It should now be accessible for everyone if you want to give further feedback. Thank you.
     
    PaulMDev likes this.
  7. X3doll

    X3doll

    Joined:
    Apr 15, 2020
    Posts:
    37
    Having a global setting for input is finally a good starting point to leverage inputs in a rational way.
    Here is my two cents.

    As you did with graphics, you should have a selector on top that selects the currently active "Action Map" and switches input action assets during runtime/editor time ( Really needed, especially runtime ). In this way, you have the old-fashioned new input system with assets but you select literally the "default input action asset" by default project-wise.

    P.S.
    Why rewrite the entire UI for the new project inspector, when you already have it???
    The need to stay in project settings is because you want to leverage an input action project-wise, already set. That is cool, but... why do you simply put an input action selector in the project settings with the default input action already selected?
     
    mariandev likes this.
  8. Ukyuu

    Ukyuu

    Joined:
    Jun 3, 2020
    Posts:
    4
    Hello. I have to say that I agree with this. If it simply created an input action file and selected it as the "project-wide default" file all videos and tutorials about the new input system would still be widely relevant and just an addendum would have sufficed to the content creators out there.

    That said, it comes with everything already configured for basic needs which is excellent for beginners. As one myself, which has been barred of this whole new input thingy the whole time because the interface of the officially released input system is broken to the point of making the whole damn feature unusable. So this pre-release makes it one less barrage I have go through to learn unity overall.
    Now it'd be very perfect if you could get rid of the "string" thing, but that's nothing a script with some set variables can't fix.
    I'm having a lot of difficulties to learn unity, including the Input System thing, with the "unity learn" part being either out-of-date or just not what I want to learn about or how I best learn things, when not absent entirely, videos are in English, which is not my main writing is fine, but oral is hard to understand especially for fast-speakers. The input system is one such thing where the resources available never quite got me there, and the fact I had to download a whole "unity" beware of the version (not the major but even the minor most) was/sometimes still is troubling as hell.
    By the way, if you intend to make it the standard input system, does that mean that in the future the input system will be the standardly installed one, and the old input manager will be a "compatibility package" ?

    Overall, this update fix the broken interface, adds a lot of clarity to the input system, comes with most 3rd person controls already in. While I wish it was part of a 3rd person project template for 2022. I'm, I admit, very satisfied. The whole controller part was one of the reasons I hesitated between unity and unreal. C# had me stay, but with this, I'm just glad I stuck to it for long enough to learn about this preview package and can only hope it's going to be pushed into the released state as soon as possible.

    Sincerely, a happier beginner.
     
  9. Deleted User

    Deleted User

    Guest

    Damn!
    Can I test it in 2021.3 anyway? Is there really something in 2021.3 that would prevent the scripts to work?
     
  10. Peter77

    Peter77

    QA Jesus

    Joined:
    Jun 12, 2013
    Posts:
    6,650
    Because reinventing the wheel is more fun than using someone else's solution, and it also avoids any issues that may arise from using an existing solution with bugs or limitations. I believe that this is one of the reasons why several Unity systems have subpar quality, as they are not utilized internally and people work around them instead of fixing/improving them.
     
    Ryiah, sacb0y, X3doll and 3 others like this.
  11. Baste

    Baste

    Joined:
    Jan 24, 2013
    Posts:
    6,371
    A default input actions asset that always exists and is always enabled is a pretty interesting approach. I think having more than one InputActionAsset in a project is going to be very rare (I still don't really know what you'd use that for), so this will probably be the correct approach in most cases.


    I never really liked that approach. It's a super-clunky thing that SRPs introduced where project-wide settings lives in the Assets folder instead of in the Edit/Project Settings menu. They probably did that because there was no way to add stuff to the Project Settings menu depending on if a package was installed or not without changing the core of the editor. Now that Settings Providers exists, that approach should probably be deprecated, as packages can put settings into the settings menu.
     
    petey likes this.
  12. Mind you it still lives in the assets folder (or settings folder, depends) you just lose the ability to replace all related settings with one swell swoop from the editor UI (dropping another setting asset onto the field). And you need to live through another bugfest until Unity fixes all the issues with this settings drawing train wreck.
     
    Walter_Hulsebos likes this.
  13. Schubkraft

    Schubkraft

    Unity Technologies

    Joined:
    Dec 3, 2012
    Posts:
    1,078
    Hello Input System users!



    We just released a 2nd preview release of the Input System (1.8.0-pre.2) which contains a new feature called project-wide Actions. We would love to get your feedback after trying it out. Since this is a pre-release feature your feedback will go a long way in shaping it and improving it for everyone else. Please use this form for your comments https://forms.gle/67brxDs5xWtzGGmz9


    We added default project wide actions to help with prototyping and streamline the main workflow of the Input System. These default actions are available from the Input System Package settings tab in the Project Settings which you can access from Edit.


    What is new in pre.2?

    For this version we updated the manual to highlight the new project-wide Actions (Quickstart Guide, Workflow and various sections under Using the Input System).


    The new UI Toolkit based Action Editor is now enabled for both project-wide Actions and Input Action asset editing.


    We added support for Game rotation vector sensor on Android.


    For all the changes in the release please see the release notes.


    Installation

    You can go to Window -> Package Manager -> + -> Add Package and add it to a project there if the Input System isn't already present in your project.


    The next 2023.3 alpha version will use that version automatically once you add Input System.


    For everyone else you can manually edit your <project>/Packages/manifest.json file and add "com.unity.inputsystem": "1.8.0-pre.2" to the dependencies.


    The minimum Unity version needed is 2022.3.0.


    KNOWN ISSUES

    • The undo/redo system doesn’t work well yet with InputActionReferences and their assignments.

    • There are still various UX issues with the new UI Toolkit Action Editor which we are working through. Such as:

      • Search UI is not yet supported

      • Multi-select is not yet supported

      • Shortcuts for cut/paste, copy are not yet implemented
    • The API docs are not available yet on the documentation website
    Thank you!
     
  14. Norimoo

    Norimoo

    Joined:
    Sep 22, 2018
    Posts:
    3
    I can't for the life of me find the 1.8.0 version, even with preview packages enabled. Even changing the manifest returns a package not found warning. I'm using 2022.3.13f1.
    EDIT: Was able to use the package, but only in 2023.2.1f1.
    EDIT.2: Playmode Options don't seem to work with Domain unchecked.
     
    Last edited: Nov 28, 2023
  15. Walter_Hulsebos

    Walter_Hulsebos

    Joined:
    Aug 27, 2015
    Posts:
    47
    I'm sorry, but elements of the UX on this got far way worse, just to make the one in the Project Settings window look nicer it seems.

    That whole header has to go, it's redundant.

    upload_2023-12-20_23-36-23.png
     
    Last edited: Dec 20, 2023
    Peter77 likes this.
  16. Walter_Hulsebos

    Walter_Hulsebos

    Joined:
    Aug 27, 2015
    Posts:
    47
    This one also is looking worse for wear.
    upload_2023-12-21_0-36-25.png
     
  17. Walter_Hulsebos

    Walter_Hulsebos

    Joined:
    Aug 27, 2015
    Posts:
    47
    • The Dirty Asset * shows up after changing some inputs even when Auto-Save is enabled.
    • You can't drag a Binding from one InputAction to another. It jumps back as soon as you click anywhere else.
    • The layout is all sorts of screwed once you use any other sizings than the default one, and even that one is iffy at best.
    • You get the error "type is not supported string value" once you remove a binding of an InputAction, but only if you deleted it using the Delete key, if you use the UI right-click, that's not an issue.
    • The + Icon when adding a binding no longer shows a dropdown, so now you'll have to right click all the time.

      Also, could we get lines or color differences between the elements in the Actions tab? It's not super readable right now.

      Unity's Input System UI - Issues: PART 1 (youtube.com)
     
    Last edited: Dec 21, 2023
  18. BTStone

    BTStone

    Joined:
    Mar 10, 2012
    Posts:
    1,436
    Hey @Schubkraft
    The project wide Input Actions are an interesting approach, I wonder though: what was/is the reasoning for this?
    Is this a feature that was requested?
     
  19. Schubkraft

    Schubkraft

    Unity Technologies

    Joined:
    Dec 3, 2012
    Posts:
    1,078
    Nobody came to us and said "We need project wide input actions!" but a lot of people said "Why do I need to do this much stuff? I just want a quick Input.GetKey call!" and this is a solution we think will help with that. Quicker startup when using the Input System and you only need to touch it if you need to change from the default.
     
  20. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,937
    I can't imagine this solution being in any way easier than just saying:
    Code (csharp):
    1. if (Keyboard.current[Key.A].wasPressedThisFrame)
    2. {
    3.     // do stuff
    4. }
    I haven't checked the official tutorials in a long time but looking for the first tutorial on the input system shows it taking the most verbose route so there's the problem. It's not that it can't be done easily but that no one knows how to make a tutorial that gets straight to the point using the easiest approach.

    https://learn.unity.com/project/using-the-input-system-in-unity

    The documentation isn't much better. For a quick start guide it's not a very quick start even with the new defaults which incidentally could have just been dumped into a folder in the project similar to how a new project includes a "sample" scene.

    https://docs.unity3d.com/Packages/com.unity.inputsystem@1.8/manual/QuickStartGuide.html

    The direct workflow section is a close second but it loses to my example as it doesn't show that you can pass an enum or a string which has lead people to believe (I know because I've responded to the posts) that it's at best a hacky solution that can't scale beyond that.

    Said section even tries to incorrectly pass it off in the manner:
    You can in fact change your input bindings if you choose to use enums and strings. You just have to take the same approach many of us took for years with the old input system (though it's now easier as you no longer have to set up every axis and button possible in an archaic input manager).

    https://docs.unity3d.com/Packages/com.unity.inputsystem@1.8/manual/Workflow-Direct.html

    Fun final fact: it took me months to become comfortable with the new input system and it's almost entirely the fault of the documentation, the tutorials, and the sample code. Ultimately I had to piece together what I knew from third parties and experimentation which should not have been necessary.
     
    Last edited: Jan 16, 2024
    Redlar and Lurking-Ninja like this.
  21. Lurking-Ninja

    Lurking-Ninja

    Joined:
    Jan 5, 2024
    Posts:
    618
    Question.

    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?

    I want to be able to call
    Code (CSharp):
    1. ProjectInput.Player.Enable();
    2. ProjectInput.UI.Disable();
    3.  
    4. ProjectInput.Player.Interact.performed += DoInteract;
    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.
     
    Last edited: Jan 17, 2024
    BTStone likes this.
  22. jonkristinsson

    jonkristinsson

    Joined:
    Aug 21, 2014
    Posts:
    2
    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! :D
     
  23. X3doll

    X3doll

    Joined:
    Apr 15, 2020
    Posts:
    37
    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.

    Let us know!
     
    Lars-Steenhoff likes this.
  24. icauroboros

    icauroboros

    Joined:
    Apr 30, 2021
    Posts:
    177
    "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
     
  25. simon-elliston-ball

    simon-elliston-ball

    Unity Technologies

    Joined:
    Sep 9, 2022
    Posts:
    4
    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).
     
  26. Lurking-Ninja

    Lurking-Ninja

    Joined:
    Jan 5, 2024
    Posts:
    618
    I guess that's a no. So much for the "we are listening what you have to say"...
     
  27. lyndon_unity

    lyndon_unity

    Unity Technologies

    Joined:
    Nov 2, 2017
    Posts:
    68
    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.
     
  28. Rafaedsb

    Rafaedsb

    Joined:
    Jan 5, 2020
    Posts:
    6
    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.
     
  29. MousePods

    MousePods

    Joined:
    Jul 19, 2012
    Posts:
    812
    Hi,

    Does this include the bug where on iPhone XS and iPhone 15 Pro (only ones I have tested on) you cannot receive input at the bottom of the screen?

    This seems like a critical bug.

    My initial assessment was that it had to do with UIToolkit, but my last post explains the real issue.

    https://forum.unity.com/threads/uit...e-non-native-resolution.1517425/#post-9588664

    IN-60941

    Thanks!
     
  30. Ukyuu

    Ukyuu

    Joined:
    Jun 3, 2020
    Posts:
    4
    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.
     
  31. Jelmer123

    Jelmer123

    Joined:
    Feb 11, 2019
    Posts:
    245
    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.
     
  32. altepTest

    altepTest

    Joined:
    Jul 5, 2012
    Posts:
    1,199
    the 1.8.1 is a beta or preview version? it works with 2022 version? it doesn't show up in the updates in the package manager on 2022.3.21f1
     
  33. Schubkraft

    Schubkraft

    Unity Technologies

    Joined:
    Dec 3, 2012
    Posts:
    1,078
    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.
     
    spiney199, JesOb and mariandev like this.
  34. optimise

    optimise

    Joined:
    Jan 22, 2014
    Posts:
    2,137
  35. unity_hakan

    unity_hakan

    Unity Technologies

    Joined:
    Jun 23, 2021
    Posts:
    6
    mariandev and optimise like this.
  36. unity_hakan

    unity_hakan

    Unity Technologies

    Joined:
    Jun 23, 2021
    Posts:
    6
    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.
     
    Last edited: Apr 15, 2024
    saskenergy and mariandev like this.
  37. optimise

    optimise

    Joined:
    Jan 22, 2014
    Posts:
    2,137
  38. lyndon_unity

    lyndon_unity

    Unity Technologies

    Joined:
    Nov 2, 2017
    Posts:
    68
    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.
     
    optimise likes this.