首先在TextMeshPro的文字显示中标记为<link ID=内容 等下脚本获取到的>展示内容</link>
新建脚本挂载到有这个TextMeshPro组件的物体上
using UnityEngine; using TMPro; using UnityEngine.EventSystems; using System; [RequireComponent(typeof(TextMeshProUGUI))] public class TextMeshProLinkClick :MonoBehaviour, IPointerClickHandler { private TextMeshProUGUI _text; private Camera _uguiCamera; private Action<string> _action; private void Awake() { _text = this.GetComponent<TextMeshProUGUI>(); _uguiCamera = GameObject.FindGameObjectWithTag("GuiCamera").GetComponent<Camera>(); } public void OnPointerClick(PointerEventData eventData) { Vector3 pos = new Vector3(eventData.position.x, eventData.position.y, 0); int linkIndex = TMP_TextUtilities.FindIntersectingLink(_text, pos, _uguiCamera); if (linkIndex > -1) { TMP_LinkInfo linkInfo = _text.textInfo.linkInfo[linkIndex]; if (this._action != null) { //linkInfo.GetLinkID() 获取的就是ID属性的内容 this._action(linkInfo.GetLinkID()); } } } public void SetOnClick(Action<string> callback) { _action = callback; } public void RemoveOnClick() { _action = null; } }