具有标记标记的Unity UI文本 - " TextMeshGenerator"字符串太长

时间:2016-11-17 17:02:22

标签: unity3d

我有一个Text UI组件,其中我有20行100个字符的长列。这很好用。但是,如果我尝试将每个字符包含在<color> </color>标记内以赋予它们不同的颜色,我会收到以下错误消息:

  

TextMeshGenerator的字符串太长。切断角色。

     

ArgumentException:网格不能有超过65000个顶点

我不明白为什么标签会计入字符数限制,或者为什么它们会增加顶点的数量。

解决这个问题的最佳方法是什么?我使用的是Unity版本5.4.1f1。

2 个答案:

答案 0 :(得分:0)

我相信Unity每个字符使用4个顶点/ 2个三角形,Rich文本效果和Outline / Shadow效果在应用时会复制几何体(我目前正在使用Outline和Text.text并且很容易得到它-many-vertices消息,其字符串比20x100字符小得多。

我的用例是滚动活动日志,与您的情况略有不同。人们为我的问题建议的解决方案:

  • 使用&#34;分页&#34;系统而不是按行滚动,因此在任何给定时间显示有限数量的文本但仍然可以访问
  • 使用TextMesh Pro等第三方解决方案
  • 将多个Text元素添加到Scroll View内容窗口,这样就不会有任何文字被顶点所淹没,并使用Content Size Fitter来保持滚动功能

Haven没有尝试过这些,也许某些东西对你有用。

答案 1 :(得分:0)

今天遇到了这个令人难以置信的愚蠢错误,我发现在我的情况下,它源于默认的 Arial 字体(由 Microsoft 拥有)在 Unity 中无法调整大小,显然导致在 Unity 上呈现的单个单词的三角形超过 20k画布。

切换到其他字体样式解决了我的问题。

感谢: https://youtu.be/ccYJOT7bUUY