#unity/日常积累

OnValidate方法是一个仅限编辑器的函数,在Unity加载脚本或检查器中的值更改时调用。它的调用时机非常特殊,这里总结一下。

    1. OnValidate不受播放模式影响,只要其值发生变化,在非播放状态下也会被调用(可以用于非播放模式修改参数后更新)。

    2. 不受enabled状态影响,即使其所在的脚本被禁用,修改值时也会被正常调用。

    3. 更改脚本enabled状态时,会调用一次OnValidate。如果在Play Mode,OnValidated的调用时机在OnDisable或者OnEnable前。

    4. 更改GameObject active状态不会调用OnValidate,只有OnDisable和OnEnable会被调用。

    5. 初始加载时,无论enabled状态和active状态如何,都会被调用多次。其调用时机在Awake之前。

    常见用法:

    1. 用于Play Mode下修改参数值,实时查看效果

    2. 实时更新资产文件,比如材质、shader等