The other day I decided to make a simple checkpoint system, where there is an initial spawn point, a checkpoint, and a point that marks the end of the level. If the player falls out of bounds and has not hit a checkpoint they will respawn at the initial spawn; however once they hit the checkpoint the player will now spawn at the checkpoint spawn. Finally, once the player hits the end of the level the spawn point will reset to the beginning of the level.
I didn’t add an end game or load another level to the end point, I thought I would leave that up to the user to decide how to handle its actions, as this project is focusing on the checkpoint.
The project uses C# and the Unity 3D engine [version 4.3.3f1] and comes with a player controller. If anything doesn’t work check the Tags on the initial spawn point, checkpoint, and endpoint.
If you improve upon it or have suggestions leave a comment below, and feel free to use it in your games!