-
Notifications
You must be signed in to change notification settings - Fork 324
FIX: Custom processors serialises enum by index rather than by value. #2164
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
FIX: Custom processors serialises enum by index rather than by value. #2164
Conversation
|
…anging the value.
…tps://github.com/Unity-Technologies/InputSystem into isxb-1482/fix-custom-processor-serializesbyIndex
@AswinRajGopal Its generally recommended to add one developer on the team and one QA as reviewers on the PR when published. This will help making sure you receive feedback on it. Looks like there are CI failures for non-required tests and that branch is outdated. I would recommend updating the branch (which will automatically re-run CI). |
@AswinRajGopal I notice you have published internal URLs in this public-facing PR. This should be avoided. Instead use public URLs to issue tickets when available and otherwise only use issue number (without link). I will remove the URLs for now. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for looking into this @AswinRajGopal! Left some comments on things to address.
… added, made classes and enums internal and refactor.
… added, made classes and enums internal and refactor.
…tps://github.com/Unity-Technologies/InputSystem into isxb-1482/fix-custom-processor-serializesbyIndex
var dropdownList = m_Window.rootVisualElement.Query<DropdownField>().Where(d => d.choices.Count == 2).ToList(); | ||
Assume.That(dropdownList.Count > 0, Is.True, "Enum parameter dropdown not found in the UI."); | ||
|
||
// Determine the new value to be set in the dropdown, focus the dropdown before dispatching the change |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for adding this, increases readability significantly
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for addressing comments. Changes look good to me now.
Description
Bug: https://issuetracker.unity3d.com/product/unity/issues/guid/ISXB-1474
Port 1.13.1
The issue is that the DropdownField expects a selected index (starting at 0), but the enum’s underlying values (10, 20, 30..) don't match these indices. Instead of passing the enum’s integer value directly, I have mapped the value to the correct index in the list of enum options.
An automated test added which validates that a custom input processor with an enumerated parameter integrates correctly with both the Unity Input System’s asset serialization and its UI.
The issue is that
Testing status & QA
Verified manually in windows machine with the provided repro project.
Authored an automated test to cover the fix.
Observer details of the test run:
Overall Product Risks
Comments to reviewers
Checklist
Before review:
Changed
,Fixed
,Added
sections.Area_CanDoX
,Area_CanDoX_EvenIfYIsTheCase
,Area_WhenIDoX_AndYHappens_ThisIsTheResult
.During merge:
NEW: ___
.FIX: ___
.DOCS: ___
.CHANGE: ___
.RELEASE: 1.1.0-preview.3
.After merge: