zoukankan      html  css  js  c++  java
  • [Unity3D]脚本生命周期学习

    脚本的生命周期

    继承于MonoBehaviour的类对象无需手动实例化,由引擎来决定实例化的时机

    • Awake:每当脚本被加载的时候调用一次,就是说即使脚本没有被勾选,也会调用一次,主要用来做一些初始化操作,尤其是一些public类型的字段,因为有时候在脚本激活之前,其它脚本也许会使用当前脚本的public字段

    • OnEnable: 每次激活脚本的时候调用(也就是在☑️了脚本之后调用)

      代码中执行SetActive(true)也是激活的这个方法

    • Start: 在第一次调用Update之前调用,即使脚本被重新激活,也不会额外执行,在整个脚本的生命周期中只执行一次,所以也会在这个方法中做一些初始化操作,一般是初始化脚本的private字段,或者也可以调用延迟销毁的方法:Destroy (this.gameObject,this.lifeTime);

    • Update: 每帧调用一次

      • 注意Start/Update都不是MonoBehaviour本身的方法,而是通过反射调用的一些事件
    • LateUpdate: 在Update方法调用完之后调用,主要用来在角色更新完之后(比如位置更改完成后),我们需要去刷新一些逻辑

    • OnDisable: 脚本被取消激活后调用,可以通过调用SetActive(false)触发

    • OnDestroy: 被销毁的时候调用一次,比如怪物死后爆装备的逻辑就可以写在这里

    上述方法调用流程图

    • OnGUI: 持续调用,IMGUI代码需要写在这里
    • FixedUpdate: 以固定的频率调用,不会受到图像刷新帧速率的影响,一般我们会把处理物理的代码放在这里

    完整调用流程

  • 相关阅读:
    Distributed
    Archi
    SpringCloud
    Java 多线程
    Java 基础
    Java 基础
    Java 基础
    Java 基础
    python--all与any
    pandas--apply/applymap/map
  • 原文地址:https://www.cnblogs.com/xiuj/p/5911001.html
Copyright © 2011-2022 走看看