在Unity中只要运行的脚本都要继承MonoBehavior类,在MoniBehavior中的类执行顺序如下:
初始化方法
Reset
重置- 调用条件:在脚本第一次挂载时调用,在调试模式使用,初始化参数
- 调用次数:仅一次
- 常用作用:用于初始化属性,监视面板中的默认值
Awake
唤醒- 调用条件:在脚本被实例化时调用,仅调用一次,不管脚本设置为enable=true还是false。
- 调用次数:仅一次
- 常用作用:类似于构造函数进行初始化
OnEnable
启用- 调用条件:在脚本被启用后调用
- 调用次数:每一次重新启用脚本都会调用
- 常用作用:重复恢复成初始状态
Start
开始:- 调用条件:脚本第一次设置为enable=true且在Update类函数前调用。
- 调用次数:仅一次
- 常用作用:常用于数据或游戏逻辑初始化
更新
Update
更新:- 调用条件:脚本每一帧都会执行一次,一秒正常60帧,和电脑属性相关。
- 常用作用:常用于数据更新。
FixedUpdate
固定更新:- 调用条件:脚本启用后,固定时间被调用,
- 常用作用:适用于对游戏对象做物理操作,例如移动等。
- 设置更新频率:”Edit”—>”Project Setting”—>”Time”—>”Fixed Timestep”值,默认为0.02s。
LateUpdate
延迟更新:- 调用条件:和Update一样,在Update之后调用。
- 常用作用:常用于跟踪逻辑,比如第一人称视角跟随
碰撞检测
OnTriggerEnter(Collider)
碰撞触发开始:- 调用条件:当物体和另一个物体的碰撞体接触时执行(至少拥有一个刚体),只要有一个物体开启
isTrigger
- 常用作用:常用于跟踪逻辑,比如第一人称视角跟随
- 调用条件:当物体和另一个物体的碰撞体接触时执行(至少拥有一个刚体),只要有一个物体开启
OnTriggerStay(Collider)
碰撞触发 保持:- 调用条件:只要物体和另一个物体的碰撞体接触,每帧都会执行
- 常用作用:常用于跟踪逻辑,比如第一人称视角跟随
OnTriggerEnd(Collider)
碰撞触发结束:- 调用条件:当物体和另一个物体的碰撞体接触结束时执行。
- 常用作用:常用于跟踪逻辑,比如第一人称视角跟随
OnCollisionEnter(Collision)
碰撞触发开始:- 调用条件:当物体和另一个物体的碰撞体接触时执行(至少拥有一个刚体),两个物体都不启用
isTrigger
- 常用作用:常用于跟踪逻辑,比如第一人称视角跟随
- 调用条件:当物体和另一个物体的碰撞体接触时执行(至少拥有一个刚体),两个物体都不启用
OnCollisionStay(Collision)
碰撞触发 保持:- 调用条件:只要物体和另一个物体的碰撞体接触,每帧都会执行
- 常用作用:常用于跟踪逻辑,比如第一人称视角跟随
OnCollisionEnd(Collision)
碰撞触发结束:- 调用条件:当物体和另一个物体的碰撞体接触结束时执行。
- 常用作用:常用于跟踪逻辑,比如第一人称视角跟随
鼠标碰撞检测
OnMouseDown
- 调用条件:当用户在 Collider 上按下鼠标按钮时
- 常用作用:
OnMouseUp
- 调用条件:当按下鼠标抬起时调用,不管鼠标在不在Collider 上
- 常用作用:
OnMouseUpAsButton
- 调用条件:松开鼠标时,仅当鼠标在按下时所在的 Collider 上时
- 常用作用:
OnMouseDrag
- 调用条件:当用户单击 Collider 并仍然按住鼠标时
- 常用作用:
OnMouseEnter
- 调用条件:当鼠标移入 Collider 时调用
- 常用作用:
OnMouseExit
- 调用条件:当鼠标移出Collider时调用
- 常用作用:
OnMouseOver
- 调用条件:当鼠标悬停在 Collider 上时,每帧调用一次。
- 常用作用:
结束
OnDisable
停用:- 调用条件:当不可用,对象变为不可用和附属游戏对象非激活状态时调用此函数。与OnEnable()对应。
- 常用作用:常用于资源清理回收,对象状态重置
OnDestroy
销毁:- 调用条件:当销毁,当脚本销毁或附属游戏对象被销毁时调用。
- 常用作用:用于游戏物体的销毁
OnApplicatoinQuit
结束:- 调用条件:当程序结束,应用退出时调用,一般来保存一些游戏数据。
- 常用作用:处理游戏退出后的逻辑