Unity中脚本的生命周期
- 初始阶段
Awake() 唤醒: 当物体载入时立即调用1次,常用于在游戏开始前进行初始化,可以判断当满足某种条件执行此脚本this.enable=true。
OnEnable() 当可用:每当脚本对象启用时调用。
Start() 开始:物体载入且脚本对象启用时被调用1次。常用于数据或游戏逻辑初始化,执行时机晚于Awake。
- 物理阶段
FixedUpdate() 固定更新:脚本启用后,固定时间被调用,试用于对游戏对象做物理操作,例如移动等。
设置更新频率:Edit -> Project Setting -> Time -> Fixed Timestep ,默认为0.02 s 。
- 游戏逻辑
Update() 更新:脚本启用后,每次渲染场景时调用,频率与设备性能及渲染量有关。
LateUpdate() 延迟更新:在Update() 函数被调用后执行,试用于跟随逻辑,比如摄像机的跟随。
- 场景渲染
OnGUI() 渲染:渲染和处理GUI事件时调用。
OnBecameVisible() 当可见:当Mesh Renderer在任何相机上可见时调用。
OnBecameInvisible() 当不可见:当Mesh Renderer在任何相机上不可见时调用。
- 结束阶段
OnDisable() 当不可用:对象变为不可用和附属游戏对象非激活状态时调用之。
OnDistroy() 当销毁:当脚本销毁或附属的对象被销毁时调用。
OnApplicationQuit() 当程序结束:应用程序退出时被调用。
关于多个物体的脚本调用顺序 参考