在编辑模式下可能会用到, 比如我想做当绑定一个脚本后做点什么事情。。。 再比如我想当脚本序列化的数据发生改变做点什么事情等等。。
举个典型的例子 比如有些脚本需要美术 或者策划挂在场景的模型上, 那么这些模型有很多没用的的组件 比较Animation 或者 Collider 如果在这里监听的话, 当他们挂在脚本的时候就可以删除这些没用的了组件了。。
把如下脚本在编辑模式下绑定在某个对象上即可。。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
using UnityEngine; using System.Collections; public class NewBehaviourScript : MonoBehaviour { public string name = "雨松MOMO"; #if UNITY_EDITOR void Reset() { Debug.Log("脚本添加事件"); } void OnValidate() { Debug.Log("脚本对象数据发生改变事件"); } #endif } |
如下图所示, Reset方法绑定脚本时会执行一次。以后每次点击”Reset”也会执行。OnValidate方法是脚本中序列化的数据发生改变,比如这里字符串name变量发生变化后就会执行了。
如果说你想在一个统一的地方处理这些事件,那么就把reset和OnValidate消息抛出去吧。
- 本文固定链接: https://www.xuanyusong.com/archives/3691
- 转载请注明: 雨松MOMO 于 雨松MOMO程序研究院 发表
捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!
大神,请教个问题:对unity编辑器进行拓展时,需要同时存在两个相同的编辑窗,但是GetWindow返回屏幕上此类型当前的第一个编辑器窗口,如果不存在才new一个,不能同时存在两个相同的编辑窗,求解决
雨松您好,请问您用的这个这个代码高亮的插件叫什么。
Crayon Syntax Highlighter
[威武][威武][威武][给力][给力][给力]