这套流程解决的问题:减少UI造成的drawcall较高(不打图集小图都会占用drawcall的),而且需要动态加载(因为我们需要热更)
如何打包图集
存放到不同的文件夹下,然后编辑器设置对应的sprite tag 和 公用assetbundle 的名字(为下一步bundle打包做准备)。
注意:开启sprite enable功能(Project setting/Editor 下设置)
注意:Sprite Packer设置的地方需要使用DefaultPackerPolicy功能,而不要使用TightPackerPolicy功能,这个功能可能导致切图有部分是脏的
如何打包图集bundle
使用上一步制作的公用bundle 名字进行打包即可。
注意:不要把小图再打一次了,不然UI上的依赖可能还会找到小图而导致界面上可能出现图集图片 + 小图图片
如何动态加载bundle
打包后的图集assetbundle其实和其他的一样的加载,只是这里需要先加载小图对应的图集,然后在图集中找到这个小图,不然可能出现依赖丢失
的情况,事实上这个是因为bundle加载失败导致的,并不是依赖问题。
难点
其实如上的过程中的难点在于如何去区分图片应该放到那个文件夹的问题,放错了容易冗余,导致图集加载过多而内存爆炸。我们采取的原则是除非你认为
这个图真的是其他地方没有用到的,不然就划到公用图集里面去。(感觉很难维护,不知道其他项目有没有好的处理方案,这里真的很僵硬)
尚未解决的
打包图集的图片会有些糊,即使我们使用了 truecolor 也无济于事,目前还不清楚如何解决这个问题。
网友评论