本文轉載自Unity3D研究院編輯器之監聽腳本綁定事件與屬性改變事件(十一),感謝原作者提供好文章
在編輯模式下可能會用到, 比如我想做當綁定一個腳本後做點什麼事情。。。 再比如我想當腳本序列化的數據發生改變做點什麼事情等等。。
舉個典型的例子 比如有些腳本需要美術 或者策劃掛在場景的模型上, 那麼這些模型有很多沒用的的組件 比較Animation 或者 Collider 如果在這裏監聽的話, 當他們掛在腳本的時候就可以刪除這些沒用的了組件了。。
把如下腳本在編輯模式下綁定在某個對象上即可。。
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消息拋出去吧。