版本:3.6.1
浏览器运行帧率60和drawcall 50
真机运行(iOS/Android)帧率5 drawcall 701
应该是这个问题,又说的3.7.1修复。。。
我以为你们做游戏都没有这种场景的需求呢,我看只有我一个人在吼。。。
多场景不可见游戏进程需要继续走的时候不就需要透明度=0降低dc让游戏继续按进程走嘛
谢谢。项目没有设置opacity,直接加载预制体,进入界面后浏览器和真机的fps、dc等不差别很大
那就是动态合图导致的喽,估计你打包时用了自动图集吧
查看了一下打包配置,模块资源采用远程加载的方式,打包时也没有采用自动图集。
求解,如果没有解决方案只有回退到2.4去做了
我也放弃3.6引擎了。改2.4
cocos3.x
原生基本无作品(有点绝对),也没看见谁拿来秀
都是在做h5广告播放器
这个你可以自己测性能。例如创建1000个Sprite. 对比2.4 &&3.4 在手机上跑跑微信小游戏。
1年前用3.x写原生的。早已放弃。
测啥测,3.x有啥好测的。
这不是浪费时间吗
web写的好好的,表现好好的。
放到原生就是各种屎
看看没有采用自动图集,如果你自己本身没有进行合图操作的话
1.查看有没有打开动态合图,如果没有,那么一张图片代表一个drawcall
2.打开了动态合图,那么查看你的每一张图片,属性有没有勾选packagable(允许合图),如果没有,那么还是单drawcall,那么多少个图片/文字那么就是多少个drawcall了。
讲道理不应该会这样,我3.0开始用,已经有成熟的中等商业项目在跑了,都没遇到你这个问题
看倒数第二项,应该就是没在原生上开启动态合图了,不然不会这么少。当然在原生上开启动态合图也是有内存爆炸的风险的
我希望官方以后为原生平台增加一个 “去原生化” 的选项… 也就是, 除了底层 gfx, 其余模块仍沿用 js 实现.
比如 batch2d, 由于原生平台是 C++ 替代 TS 来实现的, 这给兼容性, 扩展性带来了很多麻烦.
(因为我写了个 System 需要 patch batcher2D, 结果发现 native 无法 patch, 前期努力白费了)
使用动态合图drawcall降下来了,但是fps还是维持在10帧左右
macro.CLEANUP_IMAGE_CACHE = false
dynamicAtlasManager.enabled = true
dynamicAtlasManager.maxFrameSize = 1024
https://docs.cocos.com/creator/manual/zh/advanced-topics/dynamic-atlas.html?h=动态图集
动态合图可以降低drawcall
左图为浏览器、右图iphone
你不知道吗 creator h5的性能是远超 原生的 本来这个引擎都是为了做h5用的 你居然拿来和原生比对性能
物理性能相差70倍,原生就应该用原生的物理…但cocos现在还是用js版本的物理引擎,导致没有jit的ios下面性能太差
该用2.4.10后帧率会掉一点,不过总比在3.x上好
优化一下应该能稳定在60左右