Originally Posted By: JibbSmart


But I think I still don't understand Unity, or perhaps I don't understand you properly. Perhaps I just don't understand components.



For a professional explanation of components , see the article
My naive game related explanation is the following

Generally speaking, the key difference between a traditional and a components based engine is ,the following :

a) Traditional engine

It supplies a set of "concrete" classes focused on "entities" such as : Camera, Light, Character , Mesh etc
Each class includes methods which are class related

You write

cam.SetRotation() and stone.SetRotation()

whereas cam is an object of Camera and stone is an object of Mesh
The former method is a pitch / jaw/ roll rotation while the latter may be a rotation about x,y,z axis

b) Component engine

It supplies a set of "Abstracted" classes focused on "functionalities " such as : Transform, Animation, Collision
You must write a script (s)( component(s) ) which you attach to the entities in the scene
The methods must be as generic as possible since you dont know in advance what kind of entity they will be attached to

About Unity
A pure component based engine is a nightmare , try for example Torque X ( not to be confused with Torque3d)
Unity is an hybrid to make the engine more user friendly

Camera is a very common entity so it is handled separately

Every entity in the scene has a position, a shape etc thus the class Transform has been added by default

You dont have neither to instance the classes nor to link the component / methods to the entities
Unity makes the job for you