MonoBehaviour 类提供了一个框架,允许您将脚本附加到编辑器中的GameObjectUnity 场景中的基本对象,可以表示角色、道具、场景、摄像机、路径点等等。GameObject 的功能由附加在其上的组件定义。 更多信息
参见 术语表。它还提供了对有用事件的挂钩,例如 Start 和 Update。
您可以在编辑器中创建新的 MonoBehaviour 脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间推移修改组件属性以及以任何您喜欢的方式响应用户输入。 更多信息
参见 术语表,如 创建脚本 中所述。
有关 MonoBehaviour 类每个成员的完整参考及其技术细节,请参阅 MonoBehaviour 脚本参考。
双击 Unity 中的脚本资源将在文本编辑器中打开它。默认情况下,Unity 使用 Visual Studio,但您可以在 Unity 的首选项(菜单:Unity > Preferences)中的外部工具面板中选择任何您喜欢的编辑器。
如果您选择创建 MonoBehaviour 脚本,则文件的初始内容将如下所示
using UnityEngine;
using System.Collections;
public class NewMonoBehaviourScript : MonoBehaviour {
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
此脚本通过实现一个从名为 MonoBehaviour
的内置类派生的类来与其内部工作机制建立连接。您可以将类视为一种创建新组件类型的蓝图,该组件类型可以附加到 GameObject。每次将脚本组件附加到 GameObject 时,它都会创建一个由蓝图定义的对象的新实例。类的名称取自您在创建文件时提供的名称。最佳实践是使类名和文件名保持同步,请参阅 命名注意事项。
但是,需要注意的主要事项是类中定义的两个函数。Update 函数是放置处理 GameObject 帧更新的代码的地方。这可能包括移动、触发操作和响应用户输入,基本上是游戏过程中需要随时间处理的任何内容。为了使 Update 函数能够执行其工作,在任何游戏操作发生之前,能够设置变量、读取首选项并与其他 GameObject 建立连接通常很有用。Start 函数将在游戏开始之前(在第一次调用 Update 函数之前)由 Unity 调用,是执行任何初始化的理想场所。
注意:经验丰富的程序员可能会惊讶地发现对象的初始化不是使用构造函数完成的。这是因为对象的构造由 Unity 编辑器处理,并且不会像您预期的那样在游戏开始时发生。如果您尝试为 MonoBehaviour 定义构造函数,它将干扰 Unity 的正常操作,并可能导致项目出现重大问题。
脚本仅定义组件的蓝图,因此在将脚本的实例附加到 GameObject 之前,其任何代码都不会处于活动状态。您可以通过将脚本资源拖动到层次结构面板中的 GameObject 或当前选定的 GameObject 的检查器一个 Unity 窗口,显示有关当前选定的 GameObject、资源或项目设置的信息,允许您检查和编辑值。 更多信息
参见 术语表来附加脚本。组件菜单上还有一个脚本子菜单,其中包含项目中所有可用的脚本,包括您自己创建的脚本。脚本实例看起来非常像检查器中的任何其他组件
附加后,当您按下播放并运行游戏时,脚本将开始工作。您可以通过在 Start
函数中添加以下代码来检查这一点
// Use this for initialization
void Start ()
{
Debug.Log("Hello world!");
}
Debug.Log 是一个简单的命令,它只是将消息打印到 Unity 的控制台输出。如果您现在按下播放,您应该会在主编辑器窗口底部和控制台窗口(菜单:Window > General > Console游戏控制台的缩写
参见 术语表)中看到该消息。
MonoBehaviour 类允许您启动、停止和管理协程。
有关协程的更多信息,请参阅 协程 和 StartCoroutine 方法脚本参考。
MonoBehaviour 类提供了对大量 事件函数 的访问,这使您可以根据项目中当前发生的情况执行代码。以下是一些更常见的示例。有关所有事件函数的列表,请参阅 MonoBehaviour 脚本参考页面上的消息部分