静态图集打入动态合图

游戏打包后,被打入静态图集的资源将不再打入动态合图。这一步是在哪里判断的。

你都10000多年cocos经验还问这个,白做了10000年了

2赞

spriteframe有一个packable,另外动态图集中有个合图尺寸限制(默认512)。
一般静态图集不再打入动态合图,是被这个尺寸限制给筛掉了。

引擎源码两个地方

  1. 若果图超过动态合图可合的最大尺寸, 会把texture变成packable = false
  2. 在合图时若果是packable = false 就不合
2赞

打个比方,我把静态图集改为500x500。hack引擎,强制将图片packable这个过滤值去掉。

打个比方,我把静态图集改为500x500。hack引擎,强制将图片packable这个过滤值去掉。

理论上可行。直接将静态图集的packable设置为true.

未勾选查看合图为空。

勾选packable之后:


经检验可行。
AutoAtlas

再次查看合图:

这样做的目的是降IO

凡事有利有弊,IO降低的结果是,内存里有静态和动态两份合图。

有没有办法在加载阶段手动让静态的图集合到动态图集里面,然后手动把静态图集释放掉?

动态合图是在sprite渲染时assembler执行打包。是可以将静态图集打入动态合图的。但是不是整个合图。你这样做感觉1静态合图浪费了加载时间,动态合图又占了内存,感觉没必要

张数有限制,占用还是可控,还好

其实很多人没注意,合图数据写纹里是非常耗时,

实时性是不太适合的,只能局部更新或提前合成!