I’m using 2019.LTS, which doesn’t seem to have this partial presets feature, so will probably have to try harder to find a way to prevent serialisation (to stop the Presets overriding references to null), and/or remove those properties from the scripts that are afflicted by this corruption from Preset loading.
This is not so much for testing purposes as it is for creative exploration, yes, in editor. I’m using them as presets. Which I thought might be fraught with problems as I’ve not seen others doing it. But it seemed like a good idea at the time… rather than using forcibly creating lots of prefabs during Play mode creative exploration, as “presets”. Am beginning to rethink that.
for anyone coming to this later, and learning that Presets usage nullifies many object references… if you can rebuild those references inside your script being subjected to this “cleansing” by the Preset usage, do so with the
Because Presets are an editor only feature, and OnValidate() is an editor only call, the null check and gaining/restoring of references via Get/Find etc, often considered costly, are not done in builds, only in the editor when you load Presets.