InputSystem icon indicating copy to clipboard operation
InputSystem copied to clipboard

FIX: ISXB-1085 Fast-enter play-mode

Open ekcoh opened this issue 5 months ago • 0 comments

Description

Attempt to support Configurable-enter-play-mode a.k.a. Fast-enter-play-mode.

Changes made

  • Merged all changes since beginning of June into this branch which is a derivative from https://github.com/Unity-Technologies/InputSystem/pull/1915 which heavily refactors centrals parts of Input System. Due to refactors all changes during the last 3 months touching those areas had to be refactored as well as part of the merge.
  • Backported ISXB-937 to this branch since it was a fix in the area of optimising binding resolution and implementing configurable enter play mode feature. Was suprised it wasn't already there.
  • Refactored code related to adding processors, interactions, composite bindings to avoid issues with initialization order in InputManager and calls through static InputSystem API should be avoided from constructors.

(Lots of time was spent on resolving exceptions/errors reported for creating ScriptableObjects from within serialisation code, still have these errors locally but saw successful CI runs so not sure what this is. git clean -fdx and restart didn't help)

Testing

Requires a large testing effort with various settings for Configurable-enter-play-mode, assembly/source edits during edit-mode play-mode etc.

Risk

High risk due to size and refactoring of central pieces.

Checklist

Before review:

  • [ ] Changelog entry added.
    • Explains the change in Changed, Fixed, Added sections.
    • For API change contains an example snippet and/or migration example.
    • JIRA ticket linked, example (case %<ID>%). If it is a private issue, just add the case ID without a link.
    • Jira port for the next release set as "Resolved".
  • [ ] Tests added/changed, if applicable.
    • Functional tests Area_CanDoX, Area_CanDoX_EvenIfYIsTheCase, Area_WhenIDoX_AndYHappens_ThisIsTheResult.
    • Performance tests.
    • Integration tests.
  • [ ] Docs for new/changed API's.
    • Xmldoc cross references are set correctly.
    • Added explanation how the API works.
    • Usage code examples added.
    • The manual is updated, if needed.

During merge:

  • [ ] Commit message for squash-merge is prefixed with one of the list:
    • NEW: ___.
    • FIX: ___.
    • DOCS: ___.
    • CHANGE: ___.
    • RELEASE: 1.1.0-preview.3.

After merge:

  • [ ] Create forward/backward port if needed. If you are blocked from creating a forward port now please add a task to ISX-1444.

ekcoh avatar Sep 27 '24 13:09 ekcoh