• Unity---脚本事件函数和生命周期




    参考于花海_

    脚本9大常用生命周期介绍

    • Awake:脚本在实例化创建时调用。
    • OnEnable:对象变为可用或激活状态时调用。
    • Start:Update函数第一次运行之前调用。
    • FixedUpdate:固定时间间隔调用。
    • Update:每帧调用一次。
    • LateUpdate:Update之后,每帧调用一次。
    • OnGUI:渲染和处理OnGUI事件。
    • OnDisable:对象不可用或非激活状态时调用。
    • OnDestroy:对象被销毁时调用。

    脚本完整事件的执行顺序

    First Scene Load 第一次场景加载时

    • Awake:在Start方法执行之前和在一个prefab初始化后被调用。(如果一个gameobject处于inactive的状态,则直到gameobject处于active状态的时候会被调用)。初始化变量一般尽量放在Awake中。

    • OnEnable:(只有在对象处于active时才会调用):启用对象后立即调用此函数, 当创建一个MonoBehaviour实例时会发生。例如当在加载关卡或者带脚本的GameObject时。

    • OnLevelWasLoaded:执行此功能以通知游戏已加载新关卡。


    Editor 编辑

    • Reset:首次将脚本附加到对象以及使用“ 重置”命令时,会执行。

    Before the first frame update 第一帧更新前

    • Start:启动脚本实例后,在第一帧开始前调用。

    In between frames 帧与帧之间

    • OnApplicationPause:在暂停帧结束的时候被调用。
      在调用OnApplicationPause之后会发出一个额外的帧,以允许游戏显示指示暂停状态的图形。

    Update Order 3个Update的顺序

    • FixedUpdate:以固定的时间间隔执行,不会收到游戏帧率的影响。默认0.02s执行一次,可以在Unity编辑器中修改默认。一般涉及到物理的计算更新放在其中

    • Update:每帧调用一次。每帧时间不固定

    • LateUpdate:每帧调用一次。在Update之后执行。一般摄像头跟随的代码放在其中,可以实现角色移动后再让摄像头跟随。


    Rendering 渲染

    • OnPreCull:在相机剔除场景之前调用。
    • OnBecameVisible/OnBecameInvisible:当一个物体对任何相机变得可见/不可见时调用。
    • OnWillRenderObject:如果对象可见,则为每个摄像机调用一次。
    • OnPreRender:在相机开始渲染场景之前调用。
    • OnRenderObject:所有常规场景渲染完成后调用。 此时可以使用GL类或Graphics.DrawMeshNow绘制自定义几何图形。
    • OnPostRender:相机完成渲染场景后调用。
    • OnRenderImage:在场景渲染完成后调用,用来对图像进行后期处理。
    • OnGUI:每帧调用多次,用于响应GUI事件。Layout和Repaint事件首先被处理,然后是每个输入事件的布局和键盘/鼠标事件。有时想输出一些数据到屏幕上,但新建一个UI控件又麻烦。就可以直接在OnGui中绘制。
    • OnDrawGizmos:用于在场景视图中绘制Gizmos以进行可视化。

    Coroutines 协程

    • yield:所有的Update函数在下一帧被调用后,协程将继续。
    • yield WaitForSeconds:在指定的时间延迟后,调用所有Update函数之后,继续。
    • yield WaitForFixedUpdate:在所有脚本上调用所有FixedUpdate后继续。
    • yield WWW:一个WWW下载完成之后继续。
    • yield StartCoroutine:链接协程,会等MyFunc协程先完成。

    当中止时
    这些功能在场景中的所有活动对象上调用。

    • OnApplicationQuit:在应用程序退出之前,所有游戏对象都会调用该函数。 在编辑器中,当用户停止播放模式时会调用它。
    • OnDisable:当对象被禁用或不活动时,将调用此函数。

    当对象被销毁

    • OnDestroy:对象存在的最后一帧更新完之后的所有update函数执行完之后执行。(对象可能在响应Object.Destroy或关闭场景时被销毁)。

    官方事件执行顺序图


    官方图地址

  • 相关阅读:
    UIApplication详解
    判断iPhone和iPad 判断设备版本
    UIDeviceOrientation UIInterfaceOrientation 区别
    iphone跬步之--NSBundle
    iOS 开发者证书总结
    iOS开发:创建真机调试证书
    iOS符号表 http://help.bugtags.com/hc/kb/article/68470/
    MRC BlOCK ARC
    调用[[UIDevice currentDevice] userInterfaceIdiom]==UIUserInterfaceIdiomPad判断设备
    sql server 代理(已禁用代理xp)解决办法
  • 原文地址:https://www.cnblogs.com/Fflyqaq/p/12409049.html
Copyright © 2020-2023  润新知