• 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.