游戏对象在它附加的GameObject的脚本中是否等效于此?

时间:2015-11-26 16:32:52

标签: c# unity3d unity5

在编写Unity脚本时,我对从gameObject继承的MonoBehaviour的使用提出了疑问。

在一些教程中,例如,为了制作缩放健康栏,我们检索健康栏的原始比例,如下所示:

originalScale = gameObject.transform.localScale.x;

我玩弄了一下这一点并认为,因为我正在对我正在操纵的物体进行变换,所以我也可以使用this

originalScale = this.transform.localScale.x;

在Unity中,这两者是否总是等价的(至少在实施MonoBehaviour时)?使用gameObject是否更为常见,以便明确我们所指的是什么?

1 个答案:

答案 0 :(得分:5)

  

this指的是脚本中描述的对象。所有Monobehaviour   脚本是组件,this关键字是指当前的   正在执行代码的组件。

     

gameObject是场景中的游戏对象。游戏对象有   附加到它们的组件。从Monobehaviour剧本中,你   可以通过使用访问脚本附加到的游戏对象   {/ 1}}或this.gameObject等同。

Reference,因为它比我说得好。

关于gameObject,这也是一个组件。由于GameObject只是组件的容器,因此当您transform时,您正在引用该转换组件。

因为任何GameObject只有一个变换,gameObject.transform也会指向同一个组件。

这是一个特殊情况,因为MonoBehaviour实际上是继承自Component,如果你看看Component类

this.transform

这就是为什么你在两种情况下得到相同结果的原因。