All the Tutorials!

How do you stop a generated level from playing so you can show a tutorial, when the level could be one of potentially hundreds?

There are sure to be other issues encountered with the way levels are generated in the game, but for now the largest one is tutorials. How the heck can they be done, given that there isn't a lot of ways to control the pace of a generated level?

The solution here ended up being to allow a prefab field in the "LevelDB" object. It works like this: first the "LevelDB" is read by the level GameManager (GM), Next the GM creates all the traps and places them, finally, if there is a Tutorial Prefab specified, the game starts in a paused mode.

All of this to say that each tutorial has an array of UI GameObjects. And each GameObject is a UI element telling the player what to do. Tapping anywhere on the screen moves to the next GameObject in the array, and the game resumes once all have been disabled.

Finally, there was a check added to make sure that the tutorial prefab is specified, and the user has the "Tutorials" option enabled. There's no guarantee that this will work with more in-depth games but should be fine for this one.