一、主要思路
其实主要原理就是通过继承EventTrigger并重写相应的函数实现的,只是对其做了一个封装,更方便使用了;
当对某个GameObject使用UIEventManager.Get()函数时,会自动检查该对象是否挂载了UIEventManager脚本,如果没有,会动态的帮他将该脚本挂载上去(动态挂载多少会影响性能),具体代码如下:
public static UIEventManager Get(GameObject obj)
{
UIEventManager temp = obj.GetComponent<UIEventManager>();
if (temp == null)
{
temp = obj.AddComponent<UIEventManager>();
}
return temp;
}
为每一个UI响应事件申明唯一对应的UnityEvent做为回调函数,例如,对于点击事件,可以这样声明:
public UnityAction<PointerEventData> OnClickCallBack;
接下来重写对应的事件,在函数体中触发回调函数即可实现对于某一事件的响应了,例如,同样是对于点击事件:
public override void OnPointerCli