Table of Contents

TextMesh Pro

这并不是UGUI原生的一个组件,使用之前需要导入一定的资源,当然功能也比默认的文本更加强大

using TMPro;
 
TextMeshProUGUI m_TextUGUI; // 在UGUI中使用的类应该是这个

脚本接口

自适应大小

访问下面这两个变量:

m_TextUGUI.renderedWidth;
m_TextUGUI.renderedHeight;

另一种方式是:

void Start()
{
    var kTextUi = GetComponent<TextMeshProUGUI>();
    if (kTextUi != null)
    {
        // 修改内容
        kTextUi.text = "Runtime Update";
 
        // 不一定是UI上原本显示的文本,可以另外指定,按照UI的格式进行计算
        var vSize = kTextUi.GetPreferredValues("JTest");
 
        // 上面的调用有一个问题:文本不会换行,计算的是文本单行排布的PreferredValues
        // 如果需要计算的结果考虑自动换行的话,还需要提供容器的尺寸(根据宽度计算换行)
        // 使用下面的函数调用:
        // Vector2 GetPreferredValues(string text, float width, float height)
 
        Debug.Log($"Real Size = {GetComponent<RectTransform>().sizeDelta}, Preferred Size = {vSize}");
    }
}

解析富文本格式

<color=red>Red Text</color>