using UnityEngine;
using System.Collections;
public class VariablesAndFunctions : MonoBehaviour
{
int myInt = 5;
}
MonoBehaviour
的目的是什么?答案 0 :(得分:14)
MonoBehaviour是每个Unity脚本派生的基类。它提供了一些生命周期功能,使您可以更轻松地开发应用程序和游戏。 一张图片值得成千上万的话。
图片来源:https://docs.unity3d.com/uploads/Main/monobehaviour_flowchart.svg
答案 1 :(得分:5)
以下陈述正确无误,
老实说,这可能会误导初学者。罪魁祸首-“每个Unity脚本”。
它为初学者提供了一个概念,即所有以统一方式创建的脚本都必须扩展Monobehaviour。事实并非如此。您可以创建脚本来容纳扩展c#基础对象类的类。这样,您的脚本便被归类为不是Unity脚本,但是没有阻止它与其他Unity脚本进行交互的过程,反之亦然。
答案 2 :(得分:2)
MonoBehaviour
是另一个VariablesAndFunctions
继承的类。这允许继承者使用其他类的方法和变量,只要它们具有正确的访问级别修饰符集。
在下面的示例Class1
继承自Base
,因此可以使用protected
方法Method1
public class Base
{
protected void Method1 { /*...*/ }
}
public class Class1 : Base
{
public void Method2 { Method1(); }
}
请注意,在此特定示例中,Method1
最好标记为abstract
或virtual
,以便Class1
可以覆盖它,如下所示:
protected override Method1()
{
//...
base.Method1(); //Call the implementation of Method1 in Base here
//...
}
特别是MonoBehaviour
被描述为:
MonoBehaviour是每个Unity脚本派生的基类。
因此,在统一编写脚本时,您可以使用此基类来更好地控制事物的访问方式,因此您不需要自己执行此操作。