- Home /
Difference between GetComponent and transform.GetComponent?
What is the difference betweenGetComponent("ScriptName")
andtransform.GetComponent("ScriptName")
when accessing a script on another object?
Is one method faster than the other?
Is one method more suitable for calling variables on other scripts and the other more suitable for running functions from another script?
Is one method more suitable in certain scenarios compared to the other?
Or is it the standard to do it in one method over the other?
I am just wondering this so that I can get a better understanding of the code and build a good habit whilst I am coding.
Answer by Wraix · Jun 23, 2013 at 06:10 PM
Not quite sure i understand the question, but i think you will gain something from reading up on class inheritance and studying the way unity structures its classes.
The transform.GetComponent("ScriptName") call will first have to resolve the transform before calling GetComponent on it. The GetComponent("ScriptName") will call the base class. The result will be the same. (As i recall unity will do some resolving behind the scene and it will probably result in the same amount of calls, so use what fits your style best)
Personally i don't think there is much difference performance wise. It will most likely not be where you have your bottle necks.
The actually performance problem will come from the GetComponent call itself. So try and use in Start() or Awake() and save a variable reference to the component and access it directly especially when working with loops.
Thanks for that, I will look into the class inheritance as well.
Your answer
![](https://koobas.hobune.stream/wayback/20220613104741im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
How i make this code in Unity Javascript 2 Answers
How can i make the ray cast don't go through the walls 1 Answer
Assign Default For Large Array 1 Answer
Moving on Axis 1 Answer
How does Unity "read" JavaScript code? 3 Answers