成分:
Component
是两者的基类Behaviour
and MonoBehaviour
。它是可以附加到游戏对象的任何脚本的基类。
这几乎是每个Unitybuild-in脚本源自.这包括Collider
and Rigidbody
.
行为:
最重要的是要了解Behaviour
是从它继承的任何东西都可以启用或禁用。如果您不希望启用/禁用它,请不要从中继承您的脚本。
例如,Rigidbody
无法启用/禁用。这就是为什么它继承自Component
类而不是Behaviour
.
Behaviour
继承自Component
.
单一行为:
最需要注意的一点是MonoBehaviour
是当你必须使用协程、调用或任何 Unity 回调函数(例如物理)时你需要它OnCollisionEnter
功能,Start
, OnEnable
, OnDisable
, etc.
MonoBehaviour
继承自Behaviour
以便您的脚本可以启用/禁用。
区分这些类有什么目的吗?
是的,就像上面的答案一样,它们是分开的,以便您可以通过继承适当的组件来使用不同的功能。
你想要协程,Invoke
, InvokeRepeating
并能够启用/禁用您的脚本?使用继承自MonoBehaviour
.
您希望能够启用或禁用脚本,但不需要协程,Invoke
, InvokeRepeating
? Use Behaviour
.
当您有一个永远不应该启用/禁用的脚本时,它应该继承自Component
.
注意Behaviour
and Component
由 Unity 用于内部内容。您不应该尝试从这些继承您的脚本。
将它们分开的主要原因是为了节省内存,并且使每个组件中的代码易于维护。这比为很少使用的功能编写数千行代码要好。通过将它们分开,当它们被加载到内存中时,它们实际上正在被使用,而不是浪费内存中的空间。
是否有直接扩展Behavior或Component的类?
Yes.