生命周期函数

生命周期函数

单脚本调用顺序

多脚本的调用顺序

总的来说,游戏开始时,会遍历场景中所有显示的物体(不包含隐藏的物体)上的全部挂载的脚本(包括启用的和停用的),然后逐一遍历处理(这个遍历的顺序是随机的)

  1. 如果当前脚本有Awake方法,就执行
  2. 接着看脚本是否被启用

    • 如果被启用,并且有OnEnable方法就执行
    • 如果未被启用,就不管

接着再根据之前的那个遍历顺序,再逐个执行启用脚本的Start方法,也就是说,如果脚本A的Awake方法执行完了之后执行脚本B的Awake方法,那么脚本A的Start方法执行完了之后也会接着执行脚本B的Start方法

Awake方法和Start方法都只会执行一次,

  • 只要物体第一次显示,Awake方法就会调用
  • 只要物体显示且脚本第一次启用,Start方法就会调用,之后再隐藏和显示物体,停用和启用脚本都不会再调用这两个方法

OnEnable和OnDisable

  • 物体从显示状态转为隐藏状态时,其上所有启用的脚本会执行OnDisable方法,
  • 物体从隐藏状态转为显示状态时,其上所有启用的脚本都会执行OnEnable方法
  • 物体处于隐藏状态时,脚本状态切换都不会执行OnEnable方法和OnDisable方法
  • 物体处于启用状态时,脚本状态切换才会执行OnEnable方法和OnDisable方法

生命周期函数
https://enlight3n.github.io/2023/04/29/UnitySummary/生命周期函数/
作者
Enlight3n
发布于
2023年4月29日
许可协议