关于monobehaviour生命周期的一些记录

时不时面试会提到,时间一长又时不时要找资料巩固一遍,当时索性就摘抄了下来,现在迁到自己博客里,顺便添点遇过的问题和自己的想法,也方便回顾;

Unity3d脚本从唤醒到销毁有一套比较完整的生命周期
Awake – Start – Update – FixedUpdate – LateUpdate – OnGUi – Reset – OnDisable – OnDestroy

1. Awake方法

  • 在加载场景时运行,只执行一次(加载一次执行一次,或者生成一次执行一次);

  • 在第一次执行Start、Update、FixedUpdate之前调用;

  • 在脚本实例化的时候调用,不管是不是Enable,并且在生命周期中只会被调用一次;

  • 在所有Start方法调用前调用;(一个场景中有多个脚本,多个脚本的Awake执行完毕之后,才开始按顺序依次执行各脚本的Start方法);

  • 官方要求 尽量在Awake中进行初始化操作;

- 通过代码生成的对象,它的Awake方法根据调用生成位置来决定是否遵循上述规则;在其他对象的Awake中生成的,则遵循上述规则(主要是二、三条);

2. Start方法

  • 游戏场景加载时调用,该方法内可写游戏场景初始化之类的代码;

  • Start在对象第一次enable之后,Update之前,start在脚本的生命周期中只可能被调用一次。

3. Update方法

每一帧渲染前调用,大部分游戏代码在这执行,除物理部分外;
跟平台帧数相关;

4. FixedUpdate方法

会在固定的物理时间步调调用一次,是基本物理行为代码执行的地方;

5.LateUpdate
晚于Update、FixedUpdate;
所有Update调用后调用相机渲染;

========================================================================================
可以使用Print()和Debug.Log()打印调试信息,Print()只能在Mono类中使用。Debug.Break()设置断点。

你可能感兴趣的:(关于monobehaviour生命周期的一些记录)