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
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"
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
- Colliders of GameObject with Rigidbody component fail to collide with another GameObject when Rigidbody becomes Kinematic
- Shader cache uploads occur when the "Upload" parameter is disabled in the Cache Server settings
- "ApplySingleProperty clear overrides error" error when applying SerializedReference override to Prefab's nested Prefab
- About Unity window shows extended version numbers including staging tag
- Mono release JIT incorrectly replaces long multiplication with a left-shift operation
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.