It doesn't have to be. This is not a problem of component based style but of the strict programming languages:

E.g. you could write similar code with lua:
Code:
local go = GameObject:new()

go:attach(Transform:new())
go:attach(Character:new())
go:attach(Animation:new())

-- same as go.transform.position
print(go.position) 

-- same as go.animation:playAnimation("walk")
go:playAnimation("walk")



So you see this is just a matter of language wink


Visit my site: www.masterq32.de