I have a class that contains a property that is normally null. When I recompile my project live (as in, change a script while in play mode), it suddenly is no longer null and I determined that the constructor for that type is not being called when this happens.
I did a little research and it seems the only way to do this is with FormatterServices.GetUninitializedObject(). My question is 1) Why is unity bothering to set a non-serializable field, and 2) apart from giving every property a backer field, what are my options?