Why is it necessary for all game objects to have a Transform component?

Why is it necessary for all game objects to have a Transform component?

Suppose I want an object that I don’t want to be a component, say some kind of manager that does nothing on the screen, nor modify any object in any scene. For example I want to code a manager that just keeps track of maps that the player has downloaded and installed in the game. There are two possible ways to go that I know of:

  1. I can either leave the manager script unattached and call its routines from other script components that are ultimately attached to GameObject instances which have transform components. Or…

  2. I can create and empty GameObject and attach my script as a component. But that GameObject that anchors my script has a useless Transform component.

Is there such a thing as a root game object for this purpose?

Every object in a scene has a Transform. It’s used to store and manipulate the position, rotation and scale of the object.
From the Script Reference: Unity - Scripting API: Transform

My definition: As long as it exists in the 3D space, it must have a Transform component. Else, how does it know where to exist?

If you don’t want to use a game object to run a script, you probably don’t want to inherit from MonoBehaviour.

It’s perfectly OK to have an empty GameObject with a script attached. You can just ignore the Transform component if you’re not using it; it’s not hurting anything or causing any problems.

–Eric