Search Issue Tracker

By Design

Votes

0

Found in

2017.4

2019.3.0f6

2020.2

Issue ID

1216097

Regression

No

ArgumentNullException exception is thrown on _unity_self when using SerializedObject.targetObject inside a delegate

IMGUI

-

Reproduction steps:
1. Open the attached project ("case_1216097-PropDrawer.zip")
2. Open the repro scene ("SampleScene")
3. Select the "GameObject" object in Hierarchy
4. Deselect the object
5. Inspect Console

Expected result: No errors are thrown
Actual result: "ArgumentNullException: Value cannot be null." exception is thrown

Reproducible with: 2017.4.38f1, 2018.4.18f1, 2019.3.6f1, 2020.1.0b2, 2020.2.0a3

Note: On 2017.4 stream, "NullReferenceException: SerializedObject has been Disposed" exception is being thrown instead of "ArgumentNullException"

  1. Resolution Note (2020.2.X):

    This issue is expected because the serializedProperty is getting disposed of in the code to clean itself up after OnGUI. In such a case, it is expected that an ArgumentNullException is thrown because the PropertyAttribute getter returns a null value. In order to avoid this exception, it is required that the user adds a null check on the attribute in the OnGUI before using SerializedObject.targetObject.

Add comment

Log in to post comment