C# 游戏对象在其所连接的游戏对象的脚本中是否与此等效?

C# 游戏对象在其所连接的游戏对象的脚本中是否与此等效?,c#,unity3d,unity5,C#,Unity3d,Unity5,在编写Unity脚本时,我有一个关于gameObject的问题,它是从MonoBehavior继承来的 在某些教程中,例如制作缩放健康栏,我们检索健康栏的原始比例,如下所示: originalScale = gameObject.transform.localScale.x; 我对此进行了一点尝试,并认为,由于我得到了当前正在操作的对象的变换,我还可以使用以下方法: 在统一中,至少在实现单一行为时,这两者是否总是等价的?使用gameObject是不是更常见,这样就可以清楚地知道我们指的是什么

在编写Unity脚本时,我有一个关于gameObject的问题,它是从MonoBehavior继承来的

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

originalScale = gameObject.transform.localScale.x;
我对此进行了一点尝试,并认为,由于我得到了当前正在操作的对象的变换,我还可以使用以下方法:

在统一中,至少在实现单一行为时,这两者是否总是等价的?使用gameObject是不是更常见,这样就可以清楚地知道我们指的是什么

这是指脚本中描述的对象。所有单一行为 脚本是组件,this关键字引用当前 执行代码的组件

gameObject是场景中的游戏对象。游戏对象具有 连接到它们的组件。在单行为脚本中,您可以 可以使用访问脚本附加到的游戏对象 此.gameObject或等效的gameObject

,因为它说得比我好

关于转换,这也是一个组件。由于GameObject只是组件的容器,所以当您执行GameObject.transform时,您将引用该转换组件

因为任何游戏对象只有一个变换,所以这个.transform也会发生在指向同一组件的点上

这是一个特例,因为MonoBehavior实际上是从组件继承的,如果您查看组件类,这是非常有用的

// Summary:
//     ///
//     The Transform attached to this GameObject (null if there is none attached).
//     ///
public Transform transform { get; }
这就是为什么在这两种情况下得到相同的结果

这是指脚本中描述的对象。所有单一行为 脚本是组件,this关键字引用当前 执行代码的组件

gameObject是场景中的游戏对象。游戏对象具有 连接到它们的组件。在单行为脚本中,您可以 可以使用访问脚本附加到的游戏对象 此.gameObject或等效的gameObject

,因为它说得比我好

关于转换,这也是一个组件。由于GameObject只是组件的容器,所以当您执行GameObject.transform时,您将引用该转换组件

因为任何游戏对象只有一个变换,所以这个.transform也会发生在指向同一组件的点上

这是一个特例,因为MonoBehavior实际上是从组件继承的,如果您查看组件类,这是非常有用的

// Summary:
//     ///
//     The Transform attached to this GameObject (null if there is none attached).
//     ///
public Transform transform { get; }

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

很有趣。然而,我注意到,当我以上述方式使用this而不是this.gameObject时,游戏中的结果是相同的。你知道这仅仅是巧合吗?即,脚本中的对象恰好与场景中的对象相同,还是我遗漏了什么?@user991710好的一点,我实际上忘记了提到这一部分,我在帖子中添加了更多关于这一点的信息。现在一切都在那里:好消息。非常感谢你澄清这一点!有趣的然而,我注意到,当我以上述方式使用this而不是this.gameObject时,游戏中的结果是相同的。你知道这仅仅是巧合吗?即,脚本中的对象恰好与场景中的对象相同,还是我遗漏了什么?@user991710好的一点,我实际上忘记了提到这一部分,我在帖子中添加了更多关于这一点的信息。现在一切都在那里:好消息。非常感谢你澄清这一点!