怎么才能优化Label的性能(阿拉伯语)

目前项目的文字是阿拉伯文,基本不能设置CacheMode为CHAR,文字多的时候dc高,滚动卡顿非常明显

bmfont

bmfont然后合并到通用UI图集,妥妥的

阿拉伯语 每个字都是连起来的,基本就不能用bmfont,CacheMode为CHAR也会有问题

开动态合图的BitMap呢

开启动态合图会把label的文字合进去吗

对啊,开动态合图就能把label加入图片的合批

不开动态合图bitmap没用

谢谢,我试试看效果

注意游戏内存,能解决问题,但是可能内存会爆 hhhhh

用bmfont处理阿拉伯语应该也是可行的,我感觉可以按照这个思路尝试一下

  • 同一个字母阿拉伯语连写时变形的字符Unicode编码和原型编码是不同的
  • 生成bmfont字体文件时将每个连写变形字符也都输入进去生成纹理
  • 然后渲染文本的时候将每个原型字符编码根据连写规则转换成变形后的编码,使用变形后的字符编码进行bmfont的渲染

这样应该就可以渲染出符合连写规则的文本了,只是具体的渲染效果可能需要做些处理才会好。
然后还得注意渲染顺序还有单个单词不能截断的问题。

1赞

大佬牛逼!

大佬的方案合理,不过要自己先了解下阿拉伯字

变形规则可以参考一下这个
https://zhuanlan.zhihu.com/p/443971128

阿拉伯文用char,bitmap模式文字不会反吗,我一般啥模式不用

楼上的方案只适用于没有聊天这种。自定义文本,bmfont等于搜集整个字库ttf了。看具体应用