在unity的脚本,有大量的脚本执行按照预先确定的顺序执行的事件函数。此执行顺序说明如下:
scene启动 (一次为每个场景中的对象) 时,会调用这些函数。
请注意对于对象添加到场景,所有脚本的清醒和 OnEnable函数将被调用之前启动、更新、 等统称为其中任何。当然,这不能强制执行时在游戏过程中实例化对象。
在第一帧更新之前
为对象添加到场景,开始将对所有脚本更新之前,调用函数等统称为其中任何。当然,这不能强制执行时在游戏过程中实例化对象。
帧之间
Update Order
当游戏逻辑和交互,动画,相机位置,等您要跟踪的时有几个不同的事件,您可以使用。常见的模式是执行大多数任务里面的更新功能,但也有其他可以使用的函数。
-
FixedUpdate:FixedUpdate通常被称为比更新更频繁。它可以被多次调用每帧,如果帧率偏低,它可能不根本被称为帧之间如果帧率较高。FixedUpdate后立即发生的所有物理计算和更新。当应用在FixedUpdate内的运动计算,你不需要将你的Time.deltaTime的值相乘。这是因为在一个可靠的定时器,独立的帧速率上调用FixedUpdate。
-
Update:Update每帧调用一次。它是主要的主力框架更新的功能。
-
LateUpdate:LateUpdate是每帧,一次调用更新完毕后。LateUpdate开始时,将会完成在更新中执行的任何计算。常用的LateUpdate将以下的第三人称视角。如果你使你的性格,并且动转内更新,则可以在LateUpdate中执行所有摄像机的平移和旋转变换计算。这将确保该字符已经完全之前相机跟踪它的位置。
呈现
-
OnPreCull:在相机中挑选出现场之前调用。扑杀确定哪些对象是可见的相机。只是在扑杀发生之前,将调用消隐。
-
OnBecameVisible/OnBecameInvisible:当对象变为可见/不可见的任何相机时调用。
-
OnWillRenderObject:每个摄像头调用一次,如果对象是可见。
-
OnPreRender:在相机开始渲染场景之前调用。
-
OnRenderObject:所有普通的场景渲染完成后,调用你可以使用 GL类或 Graphics.DrawMeshNow,在这一点上绘制自定义几何。
-
OnPostRender:在相机完成渲染场景之后调用。
-
OnRenderImage (仅限专业版):在场景渲染完成允许屏幕图像的后处理后调用。
-
OnGUI:每帧响应 GUI事件调用多次。布局和重绘事件处理第一,紧接着的布局和键盘/鼠标的事件,为每个输入事件。
-
OnDrawGizmos用于可视化用于场景视图中绘制小玩意。
协同程序
更新函数返回后运行正常的协程的更新。协同是一个函数,可以暂停其执行 (收益率),直到完成给定的YieldInstruction。不同用途的协同程序:
-
yield后所有的更新功能已呼吁下一帧,将继续协同。
-
yieldWaitForSeconds在指定的时间延迟之后,继续后所有的更新功能一直呼吁的框架
-
yieldWaitForFixedUpdate在所有的 FixedUpdate被称为对所有脚本后继续
-
yield WWW在WWW下载已完成后继续。
-
yieldStartCoroutine链协同,并将等待 MyFunc协同完成第一次。
当对象被销毁
在你的场景中的所有活动对象上得到调用这些函数:
下面的关系图概述订购和重复事件函数在脚本的一生。
|