可是AFK是用的cocos2djs 说不定还是一个远古的定制版本,我感觉吧现在的ccc工具链是比以前好点了,工具链在性能和稳定性方面根本不值得一提
这个,我想过,就是把prefab拆分为很多小的,这样就可以多个异步加载,但是这样就增加了开发的工作量,拼界面修改界面也变得很麻烦,也同样会增加文件数量,我们工程比较大,界面就一两百个。
顶一下 希望大家一起来探讨 也希望官房的大佬们能给点建设性意见
这个没什么好说的,不管用什么,资源大了肯定就会卡,只有异步预加载。
你应该没看我详细描述吧
读取资源是会导致卡顿,所以我们没法在底层去优化的话,就尽量在开发层面去优化。我们现在现在使用的方式有
- 细分每个prefab的粒度,尽量不让每个加载prefab的大小大于100k,有些不必要的资源可以初始化的时候动态加载,但是这会导致项目难维护
- 加载资源和播放动画尽量不一起运行。一般的弹框打开会有打开动画,也会这个时候初始化界面,如果初始化界面会创建很多item,也会导致打开动画卡顿严重,所以我们是弹框打开动画播放完后再进行初始化界面的操作
3.禁止使用系统字体和富文本,这个两个东西会导致严重卡顿,尽量使用bmfont字体
4.列表类弹框有scrollview和很多item的就使用动态复用列表,这样不会因为显示数量太多导致需要创建过多的item,动态复用列表在论坛和github里都有很多,一搜就可以找到
如果还有其他方法的话可以互相沟通哈哈~
现在用的哪个版本的呢
这个问题真的非常影响体验,希望官方能早日优化一下。另外1.x-1.10.1基本上能做到秒开,从2.x开始就卡顿的厉害。
mark
很常见的问题
就算是拆分后打开界面后异步加载,如果此时又有滚动列表,还是会感觉到卡顿的。
官方嗯? 关注哈呗
顶顶, 基本需求啊
老帖子居然被挖出来了
以前做的一片偏重度手游的时候也遇到了此类问题,用的是1.9.3。使用的策略跟上面的差不多,基本就是拆分prefab异步加载,减少实例化prefab的大小,同时增加prefab缓存队列,对于游戏内的热点prefab做缓存,prefab里面的资源做分帧加载,如果弹窗用的是animation动画,尽量改成程序代码实现。如果缓存过多,还需要加一套内存释放机制。
差不多这样就基本解决了特别卡的问题,但是还是会有小的卡顿,没办法做到秒开。当时我们主程的说法是creator 性能天然比2dx差。
原生android确实卡,果断放弃了原生,直接用原生webview。
分享一个我们遇到的引起卡顿的点,仅作参考。
有一个界面会显示很多技能图标,技能图标合成为一张张的plist。这些plist算起来有几百个图片帧。在第一次加载这些plist的时候会非常的慢。原因是每个图片帧都有一个独立的json文件,显示界面的时候需要加载上百个json文件,所以很卡。
因为这些图标都是用代码动态显示的,所以我作了一个优化:把碎图合成一张大图之后,不用plist文件,而是用脚本生成一个json文件,里面描述了每一张碎图的位图,像这样子:
{
"mh_fsxl5": [4,0,726,662,64,72,0,0,80,80],
...
}
然后用代码动态生成SpriteFrame显示出来。没优化之前打开界面需要2秒左右,优化完打开只有300毫秒左右。
这个方法只适用于动态加载的图集,对于需要在编辑器里设计的图片,试试在打包的时候对Bundle选择合成一个JSON,这样就不会有很多碎的json,文件IO大大减少,也许会有效果。
看过大神之前animation的优化,确实牛逼,我都想投奔了
mark mark
遇到同样的问题,3.2.0版本,各位大神有解决方案了没
官方的短期目标都在web上了。
原生我看还是coocs-lua性能最好,最稳