事件(Events)
类似委托的一种,不同的是,创建一个静态的事件变量,储存其他脚本上的方法,然后在这个脚本上调用
Public delegate void ClickAction();//不可以带参数
Public static event ClickAction OnClicked;
Update()
{
If(input.getkeydown(keycode.Space)&&ConClicked!=null)
{
OnClicked();
}
}
在其他脚本里
Void OnEnable()
{
注册OnClicked()的方法,那个方法来自这个脚本
}
Void OnDisable()
{
移除OnClicked()的方法,那个方法来自这个脚本
}
匿名方法
一般来说是
//QQGroup.Instance.loginDel += Login;
//QQGroup.Instance.messageDel += Message;
而匿名方法
QQGroup.Instance.loginDel += delegate(string name) { Debug.Log(name + "已上线~~"); }; QQGroup.Instance.messageDel += delegate(string name, string message) { Debug.Log(name + "新消息~~:" + message); };
这样写在方法里执行过以后,这样就不需要定义新方法`可直接使用``比较适用于只使用一次的内容`
此处应该有一个或者几个用来注册的方法~,这样点击一下
第二个物体处于某种状态的时候,第一个脚本按下某按钮会有效果
例子!
如果主角靠近洗澡的女NPC(洗澡是条件)
按下了谈话,女NPC会触发赶走的谈话~~
不在洗澡又是另外一种谈话~