Unity | 脚本生命周期流程图分析

2018-06-14  本文已影响126人  丁建雄

要编写出好的Unity脚本,就必须充分理解脚本的生命周期,也就是各个模块流程的执行模式。本文将对Unity脚本的生命周期流程图进行较为深入的解读。主要部分参考官方文档,附带一些博客的深入解释。

Script Lifecycle

概述

Unity脚本执行顺序是有严格规定的,这些规定的目的是使得3D游戏应用开发更加方便。因此,熟悉脚本生命周期是非常有必要的。
以上是对单个脚本内各个方法调用的执行顺序,除此之外,Unity还支持更加高端的多个脚本间自定义脚本执行顺序功能,可以自定义修改脚本执行顺序。

场景的初次加载

当场景开始加载时这些函数会被调用(场景中每个物体只调用一次)。

注意:当场景中加入实体的时候,Awake 和OnEnable 总是优先于其余函数执行(也就是说等所有实体的这两个函数执行完之后,才会轮到各个实体的Start 执行)。自然地,当处于游戏过程中的时候,新物体的加入也会按照这个规则执行,只是由于之前Start 已经执行而没办法保证在所有Start 函数之前。

在第一帧更新之前

处于帧之间

更新顺序

渲染

渲染过程很重要,主要涉及背景剔除前后、渲染前后等步骤。这里不展开讲,各个回调函数名称基本就能解释清楚了。

协程

协程的作用是延缓程序的执行直到等待指令完成,这是一种轻量级非阻塞异步并发方式,一般用于Update 函数返回之后。同时,函数内部的协程等待时,并不会堵塞外部函数的执行。主要用法有以下几种:

初始化顺序

如果对执行顺序有疑问的可以使用 文献资源6 中的脚本进行自主测试。下文的总结均为实测结果。

参考文献与资源链接:

  1. Unity ExecutionOrder
  2. Unity 脚本执行顺序自研框架
  3. Unity Coroutine
  4. Unity 不同脚本之间的执行顺序
  5. Unity 深入理解脚本执行顺序
  6. Unity 脚本执行顺序测试 Unity Asserts
上一篇下一篇

猜你喜欢

热点阅读