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);
        }

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