多个序列帧动画同时播放导致DC过高?

项目中可能同时出现多个序列帧动画播放的情况,序列帧用到的图片都打图集了,但是播放的时候还是导致DC过高,比如短时间内生成了20个对象,都是播放的同一个序列帧动画,但是DC不是一个,而是20多个,请问大佬们有什么优化方案?

自己测试了来,
1 不播放帧动画就没问题,播放就导致DC高。难道是帧动画的图片设置有什么问题?图片打成图集和没有图集都测试过了,都会导致高DC
2 预制体上没有label等,除了图片,动画组件外,还有碰撞体组件,但是测试发现是播放帧动画就会高DC
3 如果把帧动画原本20帧的,删掉右面的只剩1帧,播放动画DC也正常,看来是播放帧动画导致的,帧动画美术给出了20张图片,这种是不是用TexturePacker合图来优化?为啥自动图集不行呢?

  • Creator 版本: 3.8.2

你要检查 是不是中途什么东西打断了

一般打断就是文本、裁切、shader

1赞

没有label这些 有碰撞体 但是测试发现是只要播放帧动画 dc就高 其他条件不变

如果用的是像素图片的话,引擎默认是不能动态合图的,要改源代码

1.可以把合批BUFFER 开大

2.可以试试,多纹理合批方案

体验地址:仅供体验,源码为谁

商店地址:98K 高性能多纹理合批 3.x

1赞

他放几个动画应该不至于把buffer装满吧?

没看到实际现场,
先开大吧,排除了再说。
剩下就材质参数或layer了

开大一样的结果,没用材质,layer都是同一个,有点奇怪

上个demo吧,大伙帮看看

可以在源码的这里测试,哪个合批的条件不满足

我怀疑是合图的问题,可以试试

this._currHash !== dataHash

的时候他们的dataHash是不是各不相同,如果20个drawcall有20个不相同的dataHash就是合图的问题,如果只有一个dataHash和0就可能是其他问题

我将所有帧图用TexturePacker转成了一张图片和plist 使用还是一样的情况 只要多个对象播放动画就会高DC

还未上线,不好拿出来看

这个简单,你去把官方DEMO的那个资源拿出来。然后,做成DEMO,让他们下载就好了。

测试一下commitComp方法是那个条件让它不能合批

确实是有图片打断了,有点坑啊

怎么打断的?到底

发现有张图片没有进同一张动态图集