欢迎光临散文网 会员登陆 & 注册

分享一些Unity资源修改中的一些问题

2022-02-04 15:00 作者:Anicca丶Y  | 我要投稿

本篇文章我将分享一些个人在修改ab包上的的心得。

1.修改ab包后,相比原来的包,体积大了很多。

一般来讲,ab都是经过压缩的,在使用UABE时首先会把ab包解压,之后的修改都是针对解压后的ab包。

UABE的保存默认是不会压缩的,如果要想把ab的体积缩小,就需要用UABE进行压缩功能。

拓展一点压缩知识

unity的ab包有两种方式,分别是lzma和lz4。

lzma的优点是压缩率高,缺点是加载速度极慢,还会占用较大内存。

lz4的优点是加载速度快,相比lzma内存占用低,缺点是压缩率一般。

如何选择呢?根据我的经验,无脑lz4就行。

使用lzma有些ab包体积太大的话,游戏加载会非常慢,跟lz4相比会相差好几个数量级的时间。

2.在替换字符集时可能会出现的问题(TextMeshPro)

先大致讲一下流程:

1.定位3个文件(Monobehaviour,对应的字符图集,对应的Material材质)

2.确定指针,Monobehaviour中包含的指针信息需要记录,字符生成信息,需要稍微有点印象。

Material中的指针需要记录。

3.用对应版本的unity生成字符集,打包成ab包

4.针对生成的字符集重复1步骤,修改Monobehaviour中的所有指针和Material中的指针。

5.将修改好的后Monobehaviour,字符图集,Material,导入。

问题1:上面的流程走完后,运行游戏,游戏直接报错。

重新检查指针,是否所有指针都已经修改到位。

问题2:游戏能运行,字体也显示了,但是字体背景中有其他字的黑色阴影。

检查Material是否替换,检查Material中的指针是否全部修改到位。

问题3:字体成功显示,但是显示的字周围出现了其他字的边角。

生成字体时的padding太小

问题4:字体成功显示,显示的字体都有白底。

生成字体过大(如2048*2048的图集,里面只有几个字并占满整个图集)。

3.Unitypy打包体积较大ab包中遇到的问题,ab包未压缩状态超2g和超4g(以后可能会修复

如果一个ab包解压后超过4g,Unitypy只能加载,无法重新打包,打包时会报错。

如果一个ab包解压后超过2g,Unitypy无法用lz4压缩,压缩会报错。

具体原因:作者代码偷懒,有能力可以自行修复

小提醒:未压缩状态如果超4g,需要确认内存是否有16g以上,并且设置足够大的虚拟内存。否则包在加载过程中内存溢出就会报错。

分享一些Unity资源修改中的一些问题的评论 (共 条)

分享到微博请遵守国家法律