public override void OnPointerUp(PointerEventData eventData) { onPointerUp.Invoke(eventData); base.OnPointerUp(eventData); if (eventData is UPointerEventDataEx) { UPointerEventDataEx eventDataEx = eventData as UPointerEventDataEx; eventDataEx.CanBubbleEvent = IsCanBubbleEvent; } }
public override void OnPointerClick(PointerEventData eventData) { base.OnPointerClick(eventData); if (eventData is UPointerEventDataEx) { UPointerEventDataEx eventDataEx = eventData as UPointerEventDataEx; eventDataEx.CanBubbleEvent = IsCanBubbleEvent; } }
public string GetMouseUIName(bool _bShowViewName = true) { string strRes = string.Empty; UPointerEventDataEx eventData = EventSystem.current.CurrentPointerEventData(); if (eventData != null && eventData.pointerCurrentRaycast.isValid) { strRes = eventData.pointerCurrentRaycast.gameObject.name; Transform tmpTrans = eventData.pointerCurrentRaycast.gameObject.transform; if (_bShowViewName) { List <Transform> tmpTransList = new List <Transform>(); while (tmpTrans != null) { tmpTransList.Add(tmpTrans); tmpTrans = tmpTrans.parent; } strRes = tmpTransList[tmpTransList.Count - 3].name; } } return(strRes); }
/// <summary> /// 响应超链接文本区域光标移动 /// </summary> private void OnURLPointerMove() { if (m_urlHrefInfo.Count <= 0 || m_nPointerState == -1) { return; } //离开了文本 if (m_nPointerState == 1) { m_nPointerState = -1; if (m_nOldURLRect != null) { onHrefOut.Invoke(m_nOldURLRect.strHrefEvent.ToString()); //Debug.Log("exit url rect:event:" + m_nOldURLRect.strHrefEvent.ToString()); } m_nOldURLRect = null; return; } Vector2 lp; UPointerEventDataEx eventData = EventSystem.current.CurrentPointerEventData(); RectTransformUtility.ScreenPointToLocalPointInRectangle( rectTransform, eventData.position, USpeedUI.UISystem.Instance.GetCamera(), out lp); //在文本内,检测进入/离开某个url字块区域 foreach (var info in m_urlHrefInfo) { foreach (var rect in info.m_tagTextRects) { if (rect.Contains(lp)) { if (m_nOldURLRect == null) { m_nOldURLRect = info; onHrefOver.Invoke(info.strHrefEvent.ToString()); //Debug.Log("enter url rect:" + rect + " event:" + info.strHrefEvent.ToString()); } else { if (!info.Equals(m_nOldURLRect)) { //Debug.Log("exit url rect: event:" + m_nOldURLRect.strHrefEvent.ToString()); onHrefOut.Invoke(info.strHrefEvent.ToString()); m_nOldURLRect = info; onHrefOver.Invoke(info.strHrefEvent.ToString()); //Debug.Log("enter url rect:event:" + info.strHrefEvent.ToString()); } } return; } } } //光标还在文本区域内,但不在URL字块区域 if (m_nOldURLRect != null) { //Debug.Log("exit url rect: event:" + m_nOldURLRect.strHrefEvent.ToString()); onHrefOut.Invoke(m_nOldURLRect.strHrefEvent.ToString()); m_nOldURLRect = null; } }