监听面板值的变化

监听面板值的变化,一旦变化执行相应的方法,效果如下:

Paste_Image.png
Paste_Image.png
Paste_Image.png

效果就是这样的一个效果,具体运用的话,就看项目需求了。接下来看看实现代码。

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");
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,990评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,198评论 4 61
  • 躺在床上,双眼看着屋顶,被烟熏的发黑的屋顶,不知道自己该干什么。脑海里浮现的画面,告诉自己不该在继续这样堕落,颓废...
    原来是这样呃阅读 176评论 0 0
  • 作者:黄灿 雄鹰离开草原,它欣赏着大漠的磅礴。红梅告别春天,它拥抱着冬的花朵。啧啧,差点弄丢心...
    一支爱写字的铅笔阅读 284评论 0 1
  • 第一次知道简书是在微博上看到有人用就下载试试。其实从小有写东西的习惯,不过自从选了服装专业之后就很少写东西了,现在...
    H_MAGGIE阅读 347评论 0 0