private
fields on ScriptableObjects will be serialized and restored during a domain reload in the Editor.[NonSerialized]
attribute on the field.Awake()
on ScriptableObjects is called when an instance of the ScriptableObject is created (such as by CreateInstance<MyScriptableObject>()
), or when the game starts in a build for asset instances of ScriptableObjects, but not on asset instances in Editor.