把屏幕坐标转换到Text中的坐标后,再进行检测
/// <summary> /// 点击事件检测是否点击到超链接文本 /// </summary> public void OnPointerClick(PointerEventData eventData) { Vector2 lp; RectTransformUtility.ScreenPointToLocalPointInRectangle( rectTransform, eventData.position, eventData.pressEventCamera, out lp); foreach (var hrefInfo in m_HrefInfos) { var boxes = hrefInfo.boxes; for (var i = 0; i < boxes.Count; ++i) { if (boxes[i].Contains(lp)) { if (onHrefClick != null) { onHrefClick(hrefInfo.name); } Debug.Log("点击了:" + hrefInfo.name); return; } } } }可以在这里获取全部代码
https://github.com/lijia4423/EmojiText.git
参考:
https://blog.uwa4d.com/archives/Sparkle_UGUI.html