Unity3D – GameObject作为一个静态函数

新手Unity3D / C#开发人员在这里。
我在5月/ 6月的大学度假期间尝试过学习Unity3D,遇到了一个问题:

代码1:

CameraObj returnVoid; void Start () { returnVoid = GameObject.Find ("Main Camera").GetComponent<CameraObj> (); returnVoid.ComponentType (); } 

代码2:

 GameObject returnDirectLight; void Start () { returnDirectLight = GameObject.Find ("Directional Light"); Debug.Log (returnDirectLight.GetComponent<DRLight>().directionString); } 

CameraObj是我的自定义组件。
据我所知, GetComponent实际上是一个公共方法。 我理解代码2背后的逻辑。我不明白的是代码1. GetComponent如何在GetComponent变成一个静态函数? 它在我的CameraObj类中变得抽象了吗?

这不是在类GameObject上使用GetComponent(),而是在GameObject.Find()的结果上使用GetComponent()

GameObject.Find()是一个静态函数,但它返回一个特定的对象。 请注意,代码2也使用GameObject.Find(),但将结果对象存储在一个variables中。 代码1使用完全相同的函数,但不存储GameObject.Find()的结果,这是唯一的区别。