- Singleton, only allowing that one to exist in the scene.
- Holds some global variables that can be accessible from other components (i.e. referenced as a static class: GameController[“key”] = value) Useful for persistent game options and such.
- As the GameObject it is on becomes persistent, other systems that persist can attach to it, i.e. scene loaders, common UI elements. Saves having to duplicate them into other scenes.