Search Issue Tracker
By Design
Votes
0
Found in
2017.4
2018.4
2019.2.20f1
2019.3
2020.1
Issue ID
1218346
Regression
No
Scriptable Object retains private bool value when recompiling scripts
How to reproduce:
1. Open the attached 'project-1218346.zip' project
2. In the Project browser select 'CustomAsset' and clear the Console window afterward
3. Modify the 'OurScriptableObject.cs' script and save changes
4. Return to the Editor, let it recompile and observe the Console window
Expected result: an error message is not printed
Actual result: an error message is printed
Reproducible with: 2017.4.37f1, 2018.4.17f1, 2019.3.2f1, 2020.1.0a24
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
- [Mobile] Developer Console does not appear when an error is thrown
- [HDRP] Game view renders artifacts when Camera's Component "Post Anti-aliasing" is set to "TAA" and Dynamic Resolution's "Forced Screen Percentage" is changed
- A deactivated Prefab's name color becomes white when a GameObject in the scene is deactivated
- The Game view becomes blank when using Frame Debugger with MSAA and Texture binding enabled in Play Mode
- NullReferenceException is thrown when changing the Inspector preview selection
Resolution Note:
Certain ScriptableObjects fields are serialised in-memory to assist with hot reloading, this covers `private bool` fields. This allows for the fields to be retained through a domain reload, these fields do not persist to disk however (only the in-memory version of the ScriptableObject will contain these fields).
To avoid this behaviour, use the `[NonSerialized]` attribute to enforce that no serialisation is performed for both the in-memory and on disk representations of the object.