UnityTips 之 OnValidate 方法

简介: 常见的 untiy MonoBehaviour 方法有,Awake,Start,OnEnable,OnDisable,OnDestory,update,LateUpdate,FixedUpdate。最近在处理一个bug时,看到了一位已离职同事的代码时,看到一个作者不常见的OnValidate。趁此机会再复习一下各函数的调用吧。
unity版本: 2022.3.14f1c1
管线: URP

常见激活方法

这些方法,不会每帧都执行,只会在条件满足时触发一次。

  • Awake:在物体初始化的时候执行一次,无论脚本是否激活
  • Start:在脚本被激活并完成初始化时调用一次
  • OnEnable:在物体激活时调用,每激活一次都会被调用,它的执行在 Start之前,但是 Start 只在第一次激活时调用,之后开关组件不会再调用

常见更新方法

  • Update:常见的更新函数,每帧执行一次
  • FixedUpdate:固定时间更新,一般用于物理计算的更新
  • LateUpdate:每帧执行一次,但是实在其它更新函数执行完以后
  • OnGUI:绘制GUI的更新函数
  • OnDrawGizmos:绘制虚拟体的更新函数

常见失活方法

  • OnApplicationQuite:程序退出时调用
  • OnDisable:组件被关闭时调用,每次关闭都会调用。销毁物体时也会调用,OnApplicationQuit 时会同时被调用
  • OnDestory:物体被销毁时调用,OnApplicationQuite 时会同时被调用

新认识的 OnValidate

下面的周期图里并没有 OnValidate 函数,这个函数是一个 Editor 下的函数,也就是说在打包的时候不会进入最终程序,它的触发条件是以下任意一个

  • 当前组件的值有变化
  • 在脚本加载的时候执行一次,注意这里,是程序加载时就会执行一次,也就是无论物体是否处于激活状态只要加载了,就会执行一次,这也是我这次遇到的bug,加载的物体虽然没激活,但是依然有逻辑运行了。T_T

MonoBehaviour 常见函数声明周期图



©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容