How to mark an object destroy on load again when DonDestroyOnLoad was called ?

If I call DontDestroyOnLoad on an object, then this object wont’t be destroyed on load. Is there any equivalent like DestroyOnLoad to destroy the object automatically when loading ?

SceneManager.MoveGameObjectToScene(gamObject, SceneManager.GetActiveScene());

No, standing on my knowledge, you have to script that. It's pretty easy, and it's something like this, depending on your needs:

function Start(){
   if (conditions on destroy hold...)
      Destroy(a particular gameObject)

The motivation in a missing function of that type relies on the fact that you can destroy an object whenever you want (so, you can do it with a script like the previous one), but the inverse isn't true: when the new scene is loaded, objects are implicitly destroied, so the DontDestroyOnLoad() is required as an "exception" at that rule.

I know this is an old question, but I thought someone might like to know this.

Destroy(gameObject) will destroy the object immediately, but you may still want the object until the end of the scene. You can simply SetParent() to another GameObject that WILL be destroyed on load.

It’s a simple concept i’ve used myself. Regardless of the DoNotDestroy exception, objects will still inherit that exception from their parents. You can use this to your advantage.

SetParent(); takes 1 argument, which is the Transform of the object you want to parent to.