许多时候我们希望监听某个值变化了之后会调用某方法
下面介绍一种我自己一直都在用的方法。
首先我们可以创建一个类
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);
}