9

Unity 版本: 5.6.5f1 个人版

TextMesh Pro 版本: 1.0.56.0b3

我有一个 TextMesh Pro UI 文本对象,其区域与 UI 图像的区域相交。文字是动态的,但图像永远不会改变。有没有办法让 TextMesh Pro UI 文本在图像周围流动,类似于文本在 HTML/CSS 中环绕到一侧的方式?

下图显示了 Unity 中对象的两个副本。一个对象,由图像所在的红色空间表示,是我目前得到的。文本进入图像的空间。另一个对象,由图像所在的蓝色空间表示,显示了文本正确换行的预期结果。

当前与预期结果: 当前与期望的结果

迄今为止的研究:

如何将图像放入文本中?- 我使用的图像是 UI 图像,而不是文本资源。图像只会像与文本内联一样起作用。

如何在矩形周围环绕文本?, Unity UI 的流畅布局- 这些是我正在寻找的。但是,没有在其中发布任何建议。

我已经探索了使用多个 TextMesh Pro UI 文本对象的想法,每个对象都充当完整文本区域的片段。但是,这与在图像周围环绕文本不同。对于动态文本,如果我从一个文本区域提取内容并将其推送到下一个区域,这将与自动调整大小功能发生冲突并导致字体大小不等。

另一种可能性是我可以一次插入一个字符,检查添加另一个字符是否会导致与图像发生冲突,并添加System.Environment.Newline以防止这种情况。但是,我担心处理大量文本会带来潜在的性能问题。

TextMesh Pro 文档- TextMesh Pro 文档有一些用于查找自动换行点的工具,但我还没有弄清楚如何实现将其与另一个对象的锚点位置进行比较的方法。

4

1 回答 1

8

在此处输入图像描述这可以通过 TextMeshPro 的“链接”溢出模式来完成。示例见附图。本质上,您需要制作两个 TMP 对象并适当调整每个对象的布局。然后:

1)使用检查器中的下拉菜单将第一个溢出模式更改为“链接”。

2) 将第二个 TMP 对象作为参考放置在出现的字段中。

于 2020-01-27T20:27:19.067 回答