監(jiān)聽面板值的變化

監(jiān)聽面板值的變化,一旦變化執(zhí)行相應的方法,效果如下:

Paste_Image.png
Paste_Image.png
Paste_Image.png

效果就是這樣的一個效果,具體運用的話,就看項目需求了。接下來看看實現(xiàn)代碼。

using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endif 
public class ObserveAttribute : PropertyAttribute
{
    public string[] callbackNames;

    public ObserveAttribute(params string[] callbackNames)
    {
        this.callbackNames = callbackNames;
    }
}


#if UNITY_EDITOR
[CustomPropertyDrawer(typeof(ObserveAttribute))]
public class ObserveDrawer : PropertyDrawer
{
    public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
    {
        EditorGUI.BeginChangeCheck();
        EditorGUI.PropertyField(position, property, label);
        if (EditorGUI.EndChangeCheck())
        {
            if (IsMonoBehaviour(property))
            {

                MonoBehaviour mono = (MonoBehaviour)property.serializedObject.targetObject;

                foreach (var callbackName in observeAttribute.callbackNames)
                {
                    mono.Invoke(callbackName, 0);
                }

            }
        }
    }

    bool IsMonoBehaviour(SerializedProperty property)
    {
        return property.serializedObject.targetObject.GetType().IsSubclassOf(typeof(MonoBehaviour));
    }

    ObserveAttribute observeAttribute
    {
        get
        {
            return (ObserveAttribute)attribute;
        }
    }
}
#endif
using UnityEngine;

public class ObserveExample : MonoBehaviour
{
    [Observe("Callback")] 
    public string
        hoge;

    [Observe("Callback", "Callback2")] 
    public Test
        test;

    public enum Test
    {
        Hoge,
        Fuga
    }

    public void Callback ()
    {
        Debug.Log ("call");
    }

    private void Callback2 ()
    {
        Debug.Log ("call2");
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,962評論 25 709
  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 15,201評論 4 61
  • 躺在床上,雙眼看著屋頂,被煙熏的發(fā)黑的屋頂,不知道自己該干什么。腦海里浮現(xiàn)的畫面,告訴自己不該在繼續(xù)這樣墮落,頹廢...
    原來是這樣呃閱讀 216評論 0 0
  • 作者:黃燦 雄鷹離開草原,它欣賞著大漠的磅礴。紅梅告別春天,它擁抱著冬的花朵。嘖嘖,差點弄丟心...
    一支愛寫字的鉛筆閱讀 339評論 0 1
  • 第一次知道簡書是在微博上看到有人用就下載試試。其實從小有寫東西的習慣,不過自從選了服裝專業(yè)之后就很少寫東西了,現(xiàn)在...
    H_MAGGIE閱讀 397評論 0 0

友情鏈接更多精彩內容