How do you reset game?

So if game is over, user should can re-start, how you deal this game’s reset?

Re-load scene by Application.LoadLevel?

But this destroy gamemanager, etc → need to re-assign scene’s gameobject, or often result error of NullReferenceException because that scene object already destroyed when re-load.

Then dontdestroyonload at gamemanager object?

This often result unknown error because developer should manually reset various values, variables even he didnt noticed.

What is good option?

Thx.

Basically Application.LoadLevel(). But the same issues caused me to create a couple of init() functions in a Gamemaster script, which resets variables and reconstructs references from scratch upwards. All in a specific order. Quite a bit of work actually. Haven’t found a better way though.