Search Issue Tracker
Fix In Review for 2022.1.X
Votes
1
Found in
2022.1
2022.1.0b2
2022.2
Issue ID
1392262
Regression
No
ArgumentOutOfRangeException error is thrown when element is deleted in the PropertyDrawer ListView
Reproduction steps:
1. Open the user's project
2. Select "New List View Container.asset" in the Assets folder
3. Press the '+' button in the Properties list to add a new ItemProperty
4. Choose one of the proposed options to add
5. Press the '-' button in the Properties list to remove an ItemProperty
Expected result: The selected element is deleted without any errors
Actual result: The selected element sometimes (about 1/3 times) is not deleted and errors are thrown: \
1st error - "ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection."
2nd error - "SerializedProperty _item._properties.Array.data[X] has disappeared! UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)"
Reproducible with: 2022.1.0b11, 2022.2.0a7
Could not test with: 2019.4.36f1, 2020.3.30f1, 2021.2.15f1(2019.4, 2020.3 - "Assets/Scripts/Editor/CustomControl/CustomDropDown.cs(30,37): error CS8124: Tuple must contain at least two elements."; 2021.2 - "Assets/Scripts/Editor/ListViewExample/InventoryItemPropertyDrawer.cs(123,51): error CS1061: 'SerializedProperty' does not contain a definition for 'boxedValue' and no accessible extension method 'boxedValue' accepting a first argument of type 'SerializedProperty'")
Notes:
- If an element wasn't deleted, only the 1st error appears
- Reproducible on both Windows 10 and macOS
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- [URP][Lighting] The skybox doesn't render after changing the settings of the Material when using the URP Render Pipeline
- Crash on ShaderLab::ShaderState::ApplyShaderState when entering Play Mode and calling ShaderWarmup.WarmupShaderFromCollection with a shader that has dynamic_branch
- Crash on operator delete[] when a serializable structure in the System namespace is serialized by a MonoBehaviour
- [macOS] forward and backward mouse buttons are recognized as middle mouse button
- NavMeshModifier.OnEnable/OnDisable gets progressively slower when called repeatedly
maximilianahead
Apr 05, 2022 17:38
2nd error is 100% occured on my project.(version 2021.2.13f )
Called from UnityEditor.RetainedMode:UpdateSchedulers () will be used the changed list, no problem.
However, the one called from UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) uses the unchanged list and an error occurs.
Workaround at me:
int removed_idx = -1;
listview.bindItem = (VisualElement element, int index) =>
{
if (removed_idx == index)
{
removed_idx = -1;
return;
}
....
};
listview.itemsRemoved += e =>
{
removed_idx = e.First();
};