許多時候我們希望監聽某個值變化了之後會調用某方法
下面介紹一種我自己一直都在用的方法。
首先我們可以創建一個類
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);
}