private void CreateLink(Vector2 pos, string info, string text) { Transform item = UIRichTextMgrNew.GetCacheText(); m_userCacheText.Add(item); item.SetParent(m_parent); item.localPosition = pos; item.localScale = Vector3.one; Text label = item.GetComponent <Text>(); label.font = m_text.font; label.fontSize = m_text.fontSize; // 根据不同的类型,创建不同组件 string[] infoArray = info.Split('='); string type = infoArray[0]; string data = infoArray[1]; if (type.Equals("color")) { if (label.raycastTarget) // 普通文本不需要点击 { label.raycastTarget = false; } label.text = "<color='#" + data + "'>" + text + "</color>"; } else if (type.Equals("link")) { if (!label.raycastTarget && m_isCanClick) { label.raycastTarget = true; } string[] linkArray = data.Split(':'); int tpye = int.Parse(linkArray[0]); string color = linkArray[2]; label.text = "<color='#" + color + "'>" + text + "</color>"; UIEventListener lis = UIEventListener.Get(item.gameObject); lis.onClick = OnClickLink; lis.parameter = tpye + "=" + linkArray[1]; lis.onHover = OnHoverLink; } label.rectTransform.sizeDelta = new Vector2(label.preferredWidth, label.preferredHeight); }
private void CrateText(Vector2 pos, string txt) { RectTransform item = UIRichTextMgrNew.GetCacheText().GetComponent <RectTransform>(); m_userCacheText.Add(item); item.SetParent(m_parent); item.localPosition = pos; item.localScale = Vector3.one; item.sizeDelta = Vector2.zero; Text label = item.GetComponent <Text>(); label.font = m_text.font; label.fontSize = m_text.fontSize; label.text = "<color='#" + m_defaultColor + "'>" + txt + "</color>"; if (label.raycastTarget) // 普通文本不需要点击 { label.raycastTarget = false; } }