Is there a way to call a function after Unity compiles the scripts. I would like to check if an object exists in the scene and if it isn’t add it. I think its possible if I call the function from another GameObject in scene but I would like to avoid that if possible. I don’t think it’s possible but thought I would ask in case I am missing something.
Usually such things are handled via Start or Awake funcs looking for the appropriate objects, issuing a Debug.LogError or you could make it fancier than that. You can detect this in an editor script, but those run at odd times: project load, change in editor script, etc. You could make a menu item like ‘Init My System’ which does the check on user command.
You can do this using Unity’s serialization callbacks.
More specifically, you can implement the ISerializationCallbackReceiver
interface and create OnBeforeSerialize
and OnAfterSerialize
methods.
Understanding Unity’s serialization stack can be helpful for all sorts of things so I’d recommend digging into it a little bit.