This repository has been archived by the owner on Jul 11, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 246
unity2019支持问题 #48
Comments
是2019以上的所有版本都有这个问题么 |
我用的2019.1.9。应该是2019.1后都有,之前我用的2018版本,是好的。
昨天晚上,我自己琢磨了一下,已经侧面修复了这个问题。
我用的你的项目,用的很早。之前有一些bug(比如spriteGraphic是统一绘制,导致ui排序不对)
所以我做了一些调整,改动有点大,感觉合回你的主线有困难,所以没做push request…
我现在把解决问题的代码发你参考,不一定是最佳方案,但是我这边解决问题了。
原理就是剔除richText的标签。
var sub = inputText.Substring(textIndex, match.Index - textIndex);
var tranSub = _RemoveRichTag(sub);
_textTransferBuilder.Append(tranSub);
_textBuilder.Append(sub);
#if UNITY_2019_1_OR_NEWER
int tempIndex = _textTransferBuilder.Length * 4;
#else
int tempIndex = _textBuilder.Length * 4;
#endif
_textBuilder.Append(
@"<quad size=" + tempGroup.Size +
" width=" + tempGroup.Width +
" y=16 " + // 这里先硬编码,目前都是32号字,差不多这个值,以后再说
" />");
_textTransferBuilder.Append("#");
我的工程里目前用的非常好,非常感谢。
对于不能合并回的主线,我表示万分抱歉
代码作为附件,在邮件里发送了
|
嗯嗯, 我会尽快看看的 。 |
2019 那个Scene Chat Demo 默认语句发出去 显示就是错了, 就是这句 Click Send Button Send Message,[#emoji_7]&&[1#run]。 |
@fzlcxy 我先修复看看 |
准确的说,2019中也可能出现顶点数是字符4倍的情况,当Text组件有overflow存在时,我们项目现在的做法是在富文本开头加上一对标签然后在 OnPopulateMesh 中进行判断 如果 最前面4个定点的位置全部相同则判断为 Unity没有去除富文本标签的定点信息
|
在富文本开头加上一对标签? |
代码加呀,对策划是无感的~ |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
以前在unity2018上用的很好,2019出现严重问题:
2019的unity中,OnPopulateMesh(VertexHelper toFill)方法的toFill内容发生变化。
2018中,toFill里vertex的个数是原始字符串的4倍,例如,原始字符串是123,vertex就有104个。
2019中,vertex只有44个,也就是“翻译”后实际的顶点个数
而目前quad位置的对应算法是:tempIndex = _textBuilder.Length * 4;
是按原始字符串长度算了。
这导致后续的顶点处理都出现了错误。
The text was updated successfully, but these errors were encountered: