1.会导致字体间隔变宽;
2.在使用了char模式后,有些微信授权过来的玩家,emoj无法正常显示。
emoji 是 UTF-16 4字节码
char 模式下的Map key 是使用UTF-16 2字节码 (String.charCodeAt)取出,这个其实不算bug,你用bmfont也是有同样问题,好奇一问,玩家名字为何用char 不用bitmap? char 图集有限呀
bitmap图集无限吗?第二个是bitmap不是更加适合用静态文字吗。玩家名字很多,会变化。
另外bitmap是可以显示emoji
1 名字不能随意的改 2 char模式是为了方便复用的,一样名字的人很少吧。
你用char也是治标不治本,我有做过类似需求,是弹幕来的,你可以用canvas转texture的方法,建立一个canvas,然后让一个texture绑定
以一个尺寸为2048x2048 canvas,以行为单位,比如100行名字, 然后某用户离开时就canvas content删除对应行,新用户进来就补在对应行,canvas 更新图案自己查看js官网
当然你也可以参照引擎源码的dynamicAtlasManager, 用RenderTexture来做,只是清图有点麻烦需要先塞一个全是0的imagebuffer的Texture 再画新图
這弹幕搞复杂了,直接创建label合批就可以了。
你这个合批是依赖引擎自身的动态合图??? 要知道引擎自身那个只有切换场景时才会释放合图,所以你是怎样让Label合批而不用依赖合图??
相邻的char不是会合批,占用底层的图集,
char 合图只有一张, 弹幕存在多种不重复的文字的可能, 很容易就爆, 你要知道char合图爆新的文案是不会打到合图了的,那不也是打断合批
1赞
2.x发现一个问题 char模式超出2048x2048之后,就无法显示了。