MonoBehaviour 类是一个基类,所有 Unity 脚本都默认派生自该类。在Unity编辑器中新建脚本时,默认会继承该类。该类会提供一个脚本模板,包括基本的事件回调方法Start()
和Update()
。
协程
MonoBehavior类提供了启动、停止和管理协程的方法,协程是一种编写异步代码的方法,即在等待一段代码执行绘者一些actions执行完成时,同时支持其他代码的运行。
事件回调
MonoBehavior提供了众多的事件消息来帮助开发者在项目中根据当前的时机在正确的事件中进行代码的执行。下面列出的是一些常见的事件,更完全的事件消息,可以参考MonoBehavior编程脚本参考的Messages章节。
Start
,GameObject
首次加载在场景中或者GameObject
首次被实例化时调用(在首次调用任何Update方法前启用脚本时,在帧上调用Start);Update,在每一帧都调用,但每一帧的时间是不固定的;
FixedUpdate
,用于物理计算且独立于帧率消息,它具有物理系统的频率,每个固定帧率帧调用这个函数;LateUpdate,所有的Update函数调用后开始调用,一个GameObject可以绑定多个脚本,多个脚本就存在多个Update调用
Unity 后台主线程将 Update、LateUpdate制作成两个多线程 先去执行Update的线程,等Update 执行完毕后 在去执行LateUpdate线程。
OnBecameVisible
andOnBecameInvisible
,当游戏对象的渲染器进入或离开摄像机视图时调用;OnCollisionEnter
和OnTriggerEnter
,在发生物理碰撞或触发时调用;OnDestroy,在销毁对象是调用;
OnGUI,即时模式的GUI 更新,一帧中可能会调用多次,是一个开发时的工具,用于显示调试信息,不建议使用(太耗性能了)
OnEnabled,开启是调用
OnDisabled,关闭时调用
常用的函数
- CancelInvoke,取消函数调用
- Invoke,调用函数
- InvokeRepeating,按一定的频率调用传入的函数
- IsInvoking,当前是否正在调用该函数
- StartCoroutine,开启协程
- StopAllCoroutine,停止所有协程
- StopCoroutine,停止指定协程