我有一个Text UI组件,其中我有20行100个字符的长列。这很好用。但是,如果我尝试将每个字符包含在<color> </color>
标记内以赋予它们不同的颜色,我会收到以下错误消息:
TextMeshGenerator的字符串太长。切断角色。
ArgumentException:网格不能有超过65000个顶点
我不明白为什么标签会计入字符数限制,或者为什么它们会增加顶点的数量。
解决这个问题的最佳方法是什么?我使用的是Unity版本5.4.1f1。
答案 0 :(得分:0)
我相信Unity每个字符使用4个顶点/ 2个三角形,Rich文本效果和Outline / Shadow效果在应用时会复制几何体(我目前正在使用Outline和Text.text
并且很容易得到它-many-vertices消息,其字符串比20x100字符小得多。
我的用例是滚动活动日志,与您的情况略有不同。人们为我的问题建议的解决方案:
Text
元素添加到Scroll View
内容窗口,这样就不会有任何文字被顶点所淹没,并使用Content Size Fitter
来保持滚动功能Haven没有尝试过这些,也许某些东西对你有用。
答案 1 :(得分:0)
今天遇到了这个令人难以置信的愚蠢错误,我发现在我的情况下,它源于默认的 Arial 字体(由 Microsoft 拥有)在 Unity 中无法调整大小,显然导致在 Unity 上呈现的单个单词的三角形超过 20k画布。
切换到其他字体样式解决了我的问题。