功能,使用自定义事件,在ViewA和ViewB之间传递消息。
1 定义一个事件发送类
/**
* 事件发送类
*/
public class CEventDispatcher : MonoBehaviour {
//事件处理委托
public delegate void EventHandler(GameObject e, object data);
//鼠标点击事件
public event EventHandler OnClick;
//发送点击事件
public void DispatchClick(object data)
{
if (OnClick != null)
OnClick(this.gameObject, data);
}
}
2 ViewA监听事件
ViewA{
public ViewB;
public ViewA{
ViewB.OnClick = OnClickHandler;
}
public void OnClickHandler(GameObject go, object data){
Debug.log("ViewB被点击:" + data); //输出ViewB被点击:1
}
}
3 ViewB发送事件
ViewB:CEventDispatcher{ //继承CEventDispatcher
public GameObject m_gBtn;
public ViewB{
//如果m_gBtn被点击,则发送
DispatchClick(1);
}
}