为什么在Unity3d中,变换是一个独立于游戏对象的实体?

为什么在Unity3d中,变换是一个独立于游戏对象的实体?,unity3d,Unity3d,每个游戏对象都有变换,而且只有一个。每个变换只能附加到游戏对象上创建。层次结构是通过变换实现的,但游戏对象在很大程度上依赖于它 它们是不同的实体而不是相同的东西,这有什么原因吗?它们是基类的继承类型,名为。组件只能存在并附着到对象 A是一种继承的类型。所有对象都必须附加一个变换组件。原因是: 场景中的每个对象都有一个变换。它是用来储存和储存的 操纵对象的位置、旋转和缩放。每一个 变换可以有一个父级,它允许您应用位置, 分层旋转和缩放。这是在中看到的层次结构 层次结构窗格 如果你问为什么有这样一个

每个游戏对象都有变换,而且只有一个。每个变换只能附加到游戏对象上创建。层次结构是通过变换实现的,但游戏对象在很大程度上依赖于它

它们是不同的实体而不是相同的东西,这有什么原因吗?

它们是基类的继承类型,名为。组件只能存在并附着到对象

A是一种继承的类型。所有对象都必须附加一个变换组件。原因是:

场景中的每个对象都有一个变换。它是用来储存和储存的 操纵对象的位置、旋转和缩放。每一个 变换可以有一个父级,它允许您应用位置, 分层旋转和缩放。这是在中看到的层次结构 层次结构窗格


如果你问为什么有这样一个架构,你可能会发现这种讨论会在不止几篇文章和书中被讨论。我曾经问过自己这个问题,我发现下面的堆栈溢出答案是最好的答案

你的回答解释了事情的真相。但那不是我的问题。我很感兴趣他们为什么会这样。为什么Unity工程师会设计成这样?编辑我的答案,为您提供另一个StackOverflow QnA的链接,我认为这将为您提供答案。我熟悉基于组件的设计,在Unity之前,我在项目中使用了类似装饰器的行为;但是,在这种设计模式中,将始终存在于对象上的行为作为单独的装饰器仍然是没有意义的。我已经编辑了答案,以包含一个可能更好地回答您的问题的相关链接。