除了变换(当父对象被移动,然后孩子也被移动时),子对象在Unity中从它的父对象继承了什么?Unity3D - 子对象从父对象继承的是什么?
2
A
回答
2
Unity的继承不像纯粹的OOP继承。这不像一个基类提供一个孩子继承的虚拟成员。
在Unity中,子对象继承只有Transform。它并没有真正地继承它,它只是成为它自己的Transform组件的基础,因此在修改子组件时它将相对于父组件。由于所有对象默认都需要至少只有一个组件(Transform),它几乎可以由子对象继承。
2
孩子不会直接继承父变换,而是孩子变换与父母变换相对。因此,如果我们以变换位置为例,没有父项的GameObject将与世界坐标相关,而带有父项的GameObject将与父项位置相关。你可以使用localPosition得到相对位置,如果GameObject没有父母,那么它将等于Transform.position
。
至于更具体的例子(我将使用二维坐标为简单起见):
说,我们在世界上的地位(0,0)没有任何的父母有一个游戏物体(A)。其Transform.position
将(0,0)和Transform.localPosition
也将(0,0)。如果我们添加另一个游戏对象(B),使它成为A的子元素并将其世界位置设置为(1,0),那么其Transform.position
和Transform.localPosition
都将是(1,0)。现在如果我们将GameObject A移动到(2,0),我们会看到B会移动到(3,0)的世界空间中,但其Transform.localPosition
仍然是(1,0),因为这是相对于A的位置。
孩子不会继承父项的任何其他内容,但该关系可用于通过Transform.parent
和Transform.GetChild
获取彼此的引用。
相关问题
- 1. 如何从父对象继承父对象到另一个父对象?
- 2. OOP JavaScript对象继承(父/子)
- 3. Python继承 - 父对象作为子对象的参数
- 4. c#继承:将父对象转换为子对象
- 5. 如何创建从父对象继承的对象?
- 6. 为什么有必要从Python中的对象继承子类?
- 7. 什么是父对象的子对象关联?
- 8. 什么是承诺对象?
- 9. 为什么继承对象类型
- 10. 继承类从对象
- 11. 破坏父对象Unity3D
- 12. Unity3D移动所有子对象与父对象
- 13. 类,对象,继承?
- 14. 继承ActiveRecord对象
- 15. Javascript对象继承
- 16. Javascript对象继承
- 17. 继承JavaScript对象
- 18. 从子对象引用父对象
- 19. 所有从同一个类继承的对象映射,调用对象方法而不是父对象; C++
- 20. 从父对象继承将执行其父构造?
- 21. JavaScript继承对象覆盖其他继承对象
- 22. 使用嵌套对象处理父类和子类的继承
- 23. 核心数据:子对象没有继承父母的关系
- 24. 继承父的属性在JavaScript子对象
- 25. 什么是R中的承诺对象?
- 26. 什么是最好的继承或使用公共对象?
- 27. 继承与Scala的“对象”
- 28. 过滤继承的对象
- 29. 与继承的对象paramater
- 30. WCF和对象的继承
我也有兴趣。我认为变换(位置,旋转..)是唯一被“保证”共同的组件。所以我的猜测,就是这个。 – Catwood 2014-10-07 13:46:08