直接上代码把:
绑定的方法实现:
EventTrigger.Entry CommonBind(EventTriggerType type, UnityAction<BaseEventData> call)
{
// 注册事件
EventTrigger.Entry enter = new EventTrigger.Entry();
// 实例化eventID
enter.eventID = type;
// 实例化callback
enter.callback = new EventTrigger.TriggerEvent();
// 设置事件
UnityAction<BaseEventData> pointerEnterCB = new UnityAction<BaseEventData>(call);
// 绑定事件
enter.callback.AddListener(pointerEnterCB);
return enter;
}
使用:
// 实例化委托列表
if (triggerArea.GetComponent<EventTrigger>() == null)
triggerArea.gameObject.AddComponent<EventTrigger>();
triggerArea.GetComponent<EventTrigger>().triggers = new List<EventTrigger.Entry>();
// 添加到委托列表
triggerArea.GetComponent<EventTrigger>().triggers.Add(CommonBind(EventTriggerType.PointerEnter, OnHover));
triggerArea.GetComponent<EventTrigger>().triggers.Add(CommonBind(EventTriggerType.PointerExit, OnUnHover));
void OnHover(BaseEventData eventData)
{
// Debug.Log("悬浮在UI上外侧");
m_InformationButton.GetComponent<RectTransform>().sizeDelta = new Vector2(85, 24);
}
void OnUnHover(BaseEventData eventData)
{
//Debug.Log("退出UI悬浮");
m_InformationButton.GetComponent<RectTransform>().sizeDelta = new Vector2(24, 24);
}