Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
    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;
        }
    }