一句话总结 1.x to 2.0.10 升级体验: 先是一喜, 然后一惊, 后来一坑接一坑...

最近把项目从 1.10.2 升级到 2.0.10, 和大家分享下我们遇到的坑及部分解决方案.

本来挺顺利的, 不到一天就能顺利运行起来了, 基本上就是批量替换的事情.

略麻烦一点是的 cc.pXXX, 没有挨个替换, 写了一个兼容类, 然后把 cc 换成 ccc.

export class ccc {
    public static pDistance(v1: cc.Vec2, v2: cc.Vec2): number {
        return v1.sub(v2).mag();
    }
}

搞定后运行的还不错, 我激动跟 jare 说搞定了, 牛逼吧.

Jare 笑着摸了摸我的头说那就好, 心理可能想的是: 小伙子, 你还是太年轻呀.


果然, 问题来了.

###1. emit 行为发生变化

之前版本和 dispatch 是一致的, 新版本获取到的数据直接就是 userdata, 没关系, 换成 dispatch 就好啦, 简单.

2. richtext 字体默认成了系统字体

之前设置了自定义字体的 richtext 升级版本后变成系统字体, 批量换一下就好了嘛, 哈哈.

3. toggle 在 onload 之前改动会被还原回去

这个有点厉害了, toggle onload 前调用 check onload 后还是 uncheck 的状态, 没关系, 记录下状态, onload 之后再设置, 我强装镇定, 心里有一丝慌乱.

4. 加了 Mask 组件的 Node 添加触摸事件无效

新手引导时踩到了这个坑, 小伙伴也就排查了一下午而已(滴血); 没关系, 换一个节点加 touch 事件就好了呀.

5. 粒子

升级前看到论坛里有人说类似的问题, 有了一丝准备. 万万没想到还是掉进了这个深坑, 直接表现就是粒子效果和 ParticleDesigner 中不一样, 有的好解决(位置/混合模式), 有的就毫无头绪了.

比如这个: https://forum.cocos.com/t/2-0-10/80144

6. Label / RichLabel 性能问题

说道这里已经想死了, 10 倍性能差距可能有点夸张了, 但是绝对在 5 倍以上, 之前辛苦换成漂亮的富文本全都得换回 BMFont, 幸好还没有搞多语言, 要不删库跑路的心态都有了.

7. 卡死:innocent:

必杀技, js 出错 (比如: 给 Lable 的 string 赋值为 undefined) 可能会导致循环出错, 游戏直接卡死…

ERROR: src/cocos2d-jsb.js 0 Uncaught TypeError: Cannot read property '_assembler' of null [0]204._proto._render@src/cocos2d-jsb.js:39179
[1]204._proto._worldTransform@src/cocos2d-jsb.js:39157
[2]204._proto._localTransform@src/cocos2d-jsb.js:39128

不说了, 回去改 BUG 了, 要是我还活着的话, 会继续更新这个帖子的.

1赞

:grin:哈哈

label和richlabel的性能真的是让人心酸,有修改透明度的需求的话性能更差,不知道引擎方有没有优化的想法。。
用ios加载下label稍微多点的预制 就能明显感觉到卡顿。简直让人绝望

1赞

我们一个界面用了很多加了描边的富文本,打开需要3秒钟差一点的机器就5秒+了,升级前大约1秒。后者虽说也很慢但还能忍,前者就该卸游戏了。

期待下2.1.2吧

ritchText scrollview. pageView. 子元素越多越卡顿。Draw call特别高。 label 字体也模糊
这些坑我先踩了

抱抱, 你们扛过去了吗? 我已经坚持不下去了, 尤其是每一个 js 异常都可能导致游戏卡死的问题, 这个没法推给线上用户呀.

2.0.10 之后应该是不受透明度影响了,改透明度不会影响性能

这个 2.0.10 应该已经修复了的

这个 2.1.2 加了容错处理了

这个问题可以用 2.1.2 试试,已经修复了

抱抱,我们游戏还有1个月才上线,理论上应该等的到2.0.11,修改一些问题。

现在在游戏中疯狂使用label+BITMAP的方式,感觉DC有明显上升。

曾经经常使用的SPINE已经不用了,全部变成序列帧,然后plist转json来使用
曾经经常使用的富文本也已经不用了,用多个label节点拼出来效果
曾经……

2.0.10字体模糊问题依旧存在

1赞

2.0.10字体的确依然是模糊的,对比其他同类产品很明显creator的项目字体比较模糊,我们目前用字号放大再scale缩小的方式解决,但是感觉非常损耗性能,而且不能用layout控件自动布局,希望引擎层的大佬能关注。

我怎么感觉 V2.2.2 Label还是卡呀 TTF 不行啊,系统公告,400来字吧,稍差点手机就卡顿明显。