这并不是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>