直接上代碼把:
綁定的方法實現:
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);
}