如何获取 Textmeshpro 中显示的行数 - 文本 (UI)?

How to get the number of lines displayed in a Textmeshpro - text (UI)?

所以在我的脚本中我想知道在 Textmeshpro 中显示了多少行 - 文本 (UI)。

public TextMeshProUGUI commentaryText;

Debug.Log("number of lines " + (commentaryText.text.Split('\n').Length - 1));

我试过类似上面的方法,但它只会显示带有 \n 换行符的行数,但是我也想知道当它们达到文本框的限制时由回绕引起的行数。有没有办法获取用户看到的行数?

任何建议表示赞赏。谢谢

基本上你可以访问commentaryText.textInfo.lineCount来获取行数。我所做的是在单击按钮时记录我创建的 TextMeshPro 的行数,因此我能够对其进行测试:

public TextMeshProUGUI textMeshPro;

public void Click()
{
    Debug.Log(textMeshPro.textInfo.lineCount);
}

根据评论更新您想要的内容:

您需要将 TMP 设置为底部对齐并将溢出设置为 masking。然后你需要一个有遮罩组件的父级(我使用了基本面板)。超出父级大小的文本被隐藏。

我不确定您想要多少行数,但这也会计算隐藏行数。所以在我的例子中,如果你使用 lineCount 它将记录 6.