Unity笔记 脚本执行顺序 life and times
2015-07-28 14:19
567 查看
单个脚本生命周期
在网上找了2张图:
这个不太清楚简略看看
这个清楚
事件函数说明
1)Awake Start
在生命期只执行一次。多次重置可以放在OnEnable里处理。
2)FixedUpdate
用于固定频率更新,Edit->Project Setting->Time中的TimeManager可以设置频率。当Time Scale为0时,FixedUpdate代码不执行,物理处理也暂停。
3)Update,LateUpdate
和帧数同步的调用,Time.deltaTime可获得帧间隔。LateUpdate在Update后调用。
4)OnGUI
在每帧上多次调用此函数,以响应 GUI 事件。程序首先将处理 Layout 和 Repaint 事件,然后再处理每个输入事件的 Layout 和 keyboard鼠标事件。
5)OnDestroy
当脚本销毁时调用,可用来释放申请的内存。
多个脚本执行顺序
例如游戏中3个GameObject:go1 go2 go3,分别绑定3个脚本。
脚本只是在Awake和Update中分别打印自己名字和事件名。
go1脚本如下:
go2 和 go3 脚本类似,只是log的名字不同。
结果如下:
go1 awake
go2 awake
go3 awake
go1 update
go2 update
go3 update
看来Unity是把所有的GameObject同类的事件函数一起执行完再执行下一类。
改变顺序
通过Edit->Project Settings->Script Execution Order打开MonoManager面板,可以交换go1和go2顺序调整脚本执行先后,得到如下结果。
go2 awake
go1 awake
go3 awake
go2 update
go1 update
go3 update
在网上找了2张图:
这个不太清楚简略看看
这个清楚
事件函数说明
1)Awake Start
在生命期只执行一次。多次重置可以放在OnEnable里处理。
2)FixedUpdate
用于固定频率更新,Edit->Project Setting->Time中的TimeManager可以设置频率。当Time Scale为0时,FixedUpdate代码不执行,物理处理也暂停。
3)Update,LateUpdate
和帧数同步的调用,Time.deltaTime可获得帧间隔。LateUpdate在Update后调用。
4)OnGUI
在每帧上多次调用此函数,以响应 GUI 事件。程序首先将处理 Layout 和 Repaint 事件,然后再处理每个输入事件的 Layout 和 keyboard鼠标事件。
5)OnDestroy
当脚本销毁时调用,可用来释放申请的内存。
多个脚本执行顺序
例如游戏中3个GameObject:go1 go2 go3,分别绑定3个脚本。
脚本只是在Awake和Update中分别打印自己名字和事件名。
go1脚本如下:
void Awake () { Debug.Log("go1 awake"); } void Update () { Debug.Log("go2 update"); }
go2 和 go3 脚本类似,只是log的名字不同。
结果如下:
go1 awake
go2 awake
go3 awake
go1 update
go2 update
go3 update
看来Unity是把所有的GameObject同类的事件函数一起执行完再执行下一类。
改变顺序
通过Edit->Project Settings->Script Execution Order打开MonoManager面板,可以交换go1和go2顺序调整脚本执行先后,得到如下结果。
go2 awake
go1 awake
go3 awake
go2 update
go1 update
go3 update
相关文章推荐
- Servlet3.1应用生命周期事件 (转载)
- android横竖屏切换时候Activity的生命周期
- android生命周期深入分析(一)
- IIS处理Asp.net请求和Asp.net页面生命周期说明
- ASP.NET Web页生命周期和执行的方法介绍
- 关于PHP5 Session生命周期介绍
- Android静态变量的生命周期 简单介绍
- Android中Activity的生命周期探讨
- android生命周期深入分析(二)
- 基于Android Service 生命周期的详细介绍
- unity实现多点触控代码
- 跟我学Laravel之请求(Request)的生命周期
- 验证一个ASP.NET应用程序和页面的生命周期的实现代码
- asp.net页面生命周期详解
- IIS处理Asp.net请求和Asp.net页面生命周期详细说明
- JS控件的生命周期介绍
- java线程之线程的生命周期的使用
- java多线程编程之线程的生命周期
- 图解Java线程的生命周期
- java类型生命周期的详细解析