- Home /
What is the difference between GameObject.GetComponent and Component.GetComponent?
these two look the same to me https://docs.unity3d.com/ScriptReference/GameObject.GetComponent.html https://docs.unity3d.com/ScriptReference/Component.GetComponent.html
Can anyone turn on the light on this one? thank you
Answer by SohailBukhari · Jun 07, 2017 at 07:26 AM
First of all understand the relationship between GameObject and Component.
A GameObject is a container; you add pieces to the GameObject container to make it into a character, a light, a tree, a sound, or whatever else you would like it to be. Each piece you add is called a component.
Depending on what kind of object you want to create, you add different combinations of components to a GameObject. You can think of a GameObject as an empty cooking pot, and components as different ingredients that make up your recipe of gameplay. Unity has lots of different built-in component types, and you can also make your own components.
GameObjects are all the same type.
Components come in many types.
GameObjects contain (instances of) components.
Every GameObject contains a Transform component.
Every component can access its gameObject.
Every component also get convenience accessors (properties) that retrieve the corresponding properties of its gameObject, including .transform, as you have observed.
Both the GameObject class and the Component class have a number of properties that are "shortcuts" to (other) components.
myGameObject.transform is a shortcut for myGameObject.GetComponent<Transform>().
myComponent.transform is a shortcut for myComponent.gameObject.GetComponent<Transform>()
the GetComponent function exists on the Component class as well. At the End both are same!!
Your answer
Follow this Question
Related Questions
AddComponent for RawImage not functioning as expected 0 Answers
GetComponent of ALL clones? 2 Answers
Weird GetComponent error 2 Answers