Unity3d监听值的变化

许多时候我们希望监听某个值变化了之后会调用某方法

下面介绍一种我自己一直都在用的方法。


首先我们可以创建一个类

public class EventListener
    {

        public delegate void OnBoolChangeDelegate(bool newVal);//也可以改成int等等
        public event OnBoolChangeDelegate OnVariableChange; //事件

        private bool m_boolean = false;
        public bool Boolean
        {
            get
            {
                return m_boolean;
            }
            set
            {
                if (m_boolean == value) return;
                if (OnVariableChange != null)
                    OnVariableChange(!m_boolean);
                m_boolean = value;
            }
         }


使用方法如下

private EventListener menu = new EventListener();

        void Start()
        {
            menu.OnVariableChange += Test;//绑定方法
        }

        void Update()
        {
            menu.Boolean = Input.GetKey(Keycode.W);//按下W键后便会改变Boolean值,然后检测到改变了之后会执行下方Test方法
        }

        public void Test(bool value)
        {
            Debug.Log(value);
        }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章