zoukankan      html  css  js  c++  java
  • Unity 继承MonoBehaviour脚本 执行顺序 详解

    先看结果

    Awake ->OnEnable-> Start ->-> FixedUpdate-> Update  -> LateUpdate ->OnGUI ->OnDisable ->OnDestroy

    如果Script0, Script1,Script2脚本上都有Awake OnEnable Start这些函数

    执行顺序

    Script0, Script1,Script2脚本上Awake函数

    Script0, Script1,Script2脚本上OnEnable函数

    Script0, Script1,Script2脚本上Start函数

    。。。。。。。。。。

    如果一定要明确Script0的Awake函数执行顺序高于Script1,Script2的Awake函数

    则需要设置脚本执行的顺序

    点击红色框的+号 添加对应的脚本

    *数值越小的脚本将先执行,如果没有设置的脚本将按默认的顺序执行。

    详解

    Awake(执行一次)    

    官方解释:当一个脚本实例被载入时Awake被调用

    最最最最开始被调用

    执行代码

    Instantiate("实例化的预设");

    *同时预设上Inspector红色圈为勾选状态

    预设上的脚本会立马执行Awake函数;

    OnEnable(执行多次)  

    官方解释:当对象变为可用或激活状态时此函数被调用。 

    每次激活对象时 对象上继承MonoBehaciour上脚本 会调用一次

    执行代码

    gameObject.SetActive(false);//先隐藏对象
    gameObject.SetActive(true);//显示对象

    enabled = false;//先关闭启用
    
    enabled = true;//开启启用

    *都会立马会执行OnEnable函数

    *函数里适合放适配的逻辑

    Start(执行一次)  

    官方解释:Start仅在Update函数第一次被调用前调用。

    红色框勾选对应继承MonoBehaciour脚本的继承变量enabled

    enabled  官方解释:启用行为被更新,禁用行为不更新。 

    即enabled == false 不执行Update函数 enabled == true 执行Update函数

    *如果运行前不勾选红色框勾选或者在Awake函数里调用 enabled == false 则不会执行Start函数。

    *Start函数适合放界面初始化 设置文本内容 过去子级对象 逻辑

    FixedUpdate(执行N次)  

    官方解释: 当MonoBehaviour启用时,其 FixedUpdate 在每一帧被调用。 

    FixedUpdate时间在Edit->ProjectSettings->Time修改

    最好不要去修改这个时间

    *FixedUpdate函数适合调用Rigidbody逻辑

    Update(执行N次)  

    官方解释: 当MonoBehaviour启用时,其Update在每一帧被调用。 

    实现各种游戏行为最常用的函数

    *当enabled == false 不执行Update函数

    LateUpdate(执行N次)  

    官方解释: 当Behaviour启用时,其LateUpdate在每一帧被调用。 

    *先执行Updatee然后执行lateUpdate。

    OnGUI(执行N次)  

    官方解释: 渲染和处理GUI事件时调用。

    OnDisable(执行多次)  

    官方解释: 当对象变为不可用或非激活状态时此函数被调用。

    于OnEnable相对应 一个是打开后会调用 一个是关闭后调用。

    OnDestroy(执行多次)  

    官方解释: 当MonoBehaviour将被销毁时,这个函数被调用。

    执行

    Destroy(gameObject);

    挂载在gameObject上的脚本立马会执行OnDestroy函数。

  • 相关阅读:
    雨中梦游
    最后一次为你哭
    poj3169 Layout
    poj2253 Frogger
    钟爱一生
    POJ2668解题报告
    魅力泸西
    android学习笔记09(activity的生命周期)
    poj 3468 A Simple Problem with Integers
    android学习笔记之多线程(二)
  • 原文地址:https://www.cnblogs.com/zouqiang/p/6827894.html
Copyright © 2011-2022 走看看