InputSystem
InputSystem copied to clipboard
FIX: ISXB-1085 Fast-enter play-mode
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".
- Explains the change in
- [ ] Tests added/changed, if applicable.
- Functional tests
Area_CanDoX
,Area_CanDoX_EvenIfYIsTheCase
,Area_WhenIDoX_AndYHappens_ThisIsTheResult
. - Performance tests.
- Integration tests.
- Functional 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.