美文网首页
UnityTips 之 OnValidate 方法

UnityTips 之 OnValidate 方法

作者: 暴走TA | 来源:发表于2024-07-08 17:28 被阅读0次

简介: 常见的 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 常见函数声明周期图



相关文章

  • UnityTips 之CacheServer

    一、CacheServer是什么? CacheServer是Unity提供的一个高速缓存服务器,用于存储导入到项目...

  • UnityTips 之 PackageManager

    简介: unity在2018版本就已经有 PackageManager,来管理引擎的功能插件了,有了这个东西,我们...

  • UnityTips 之 色板

    unity 版本 2018.4.2f1简单介绍一下unity色板的两个实用小功能打开一个unity的基础颜色面板会...

  • UnityTips 之 选择集

    unity 版本 2018.4.2f1 重复选取物体,劳神伤体 相信在工作会遇到这样一个问题,比如场景,要修改一批...

  • UnityTips 之 颜色配置

    简介:可能大家有修改UNTIY一些配色的需求,下面给大家介绍一下UNITY从哪里可以调整引擎编辑器的部分颜色。版本...

  • UnityTips 之 显示模式

    简介: unity 的scene窗口为我们提供了多种显示模式,官方的全局光照部分只讲了一部分,这里做了补全。我们来...

  • UnityTips 之 Prefab 编辑

    简介: 最近在鼓捣2021的时候注意到了unity的prefab在场景中编辑有了新的特性,作者是从2019越级到2...

  • UnityTips 之 URP shader库新方法列表

    简介: 工程升级到 URP 渲染管线后,大部分 shader 都已无法正常运行,只有少数的 无光照运算的 shad...

  • UnityTips 之 参数预设功能

    简介:大家在使用 unity 调节组件参数的时候经常会遇到这种情况,今天感觉还可以,过了两天老板说不合适缺少一些微...

  • UnityTips 之 开启光线追踪

    简介: 千呼万唤始出来,unity2019 HDRP 管线已经有了光线追踪功能版本: unity 2019.4.1...

网友评论

      本文标题:UnityTips 之 OnValidate 方法

      本文链接:https://www.haomeiwen.com/subject/mzoocjtx.html