事件的语法
访问修饰符 + event + 委托类型 + 事件名;
例: public event Action myEvent;
事件的使用
事件的使用跟委托基本上一模一样,
1.但是事件不能在类外部直接赋值,只能使用 += 或 -= 添加或删除函数;
2.事件不能在类外部直接调用,只能在类内部封装后调用
3.事件不能作为函数中的临时变量,委托是可以的。
代码
public class Test2:MonoBehaviour
{
public Action myFun;
public event Action myEvent;
public void MyEventMethod()
{
if (myEvent!=null)
{
myEvent();
}
}
}
public class Test3 : MonoBehaviour
{
public Test2 test2;
private void Start()
{
test2.myFun += FunTest1;
test2.myEvent += FunTest2;
test2.myFun();
// test2.myEvent();不能直接调用
test2.MyEventMethod();//只能间接调用
}
void FunTest1()
{
Debug.Log("测试方法1");
}
void FunTest2()
{
Debug.Log("测试方法2");
}
}