2.1.2相比1.9.2物理引擎卡顿问题

  • Creator 版本:2.1.2

  • 目标平台: web

  • 之前哪个版本是正常的 :1.9.2

  • 出现概率:100/100

问题描述:
前提:使用graphic画线,画线结束后生成动态刚体,刚体上由一系列的PhysicsCircleCollider组件组成。
问题出现操作:快速不断的画线
程序表现:2.1.2在线段数量增加后,变得非常卡顿,gameLogic耗时不断增加。
对比1.9.2,同一份工程,程序运行依旧流畅。

下面是添加刚体的代码
let line = new cc.Node(lineIdentifier)
let graphics = newLine.addComponent(cc.Graphics)
let rigidBody = newLine.addComponent(cc.RigidBody);
rigidBody.gravityScale = 0
rigidBody.type = cc.RigidBodyType.Static

下面是画线过程中添加物理碰撞组件的代码
circleCollider = line.addComponent(cc.PhysicsCircleCollider)).offset = cc.v2(nowNodeSpaceX, nowNodeSpaceY)
circleCollider.radius = R
circleCollider.density = D
circleCollider.apply()

我还试了1.10.2以及2.0.10的版本,1.x的都流畅,2.x的都很卡。
哪位大佬知道原因的,请救救急,因为需要用到打包到各个小游戏平台的功能,所以必须是2.x的版本才行:joy:
走过路过的帮帮忙吧!!!

自己顶一下

还是手动打包吧:disappointed_relieved:结帖了

你好,可以麻烦上传个 demo 看下吗~

1赞

https://forum.cocos.com/t/topic/81639?u=1107984843

不断在最上方画线,后面就会变得很卡

demo.rar (704.4 KB)

大佬,demo就麻烦你看看了,我这边低版本打包了:joy:

收到~

2.1.2编辑器的稳定性还没2.09那么好,怎么越做越退步了

看了下你的实现,一段线用 circle collider 来创建这样会创建出非常多 collider,每段线的多个 collider 又会和其他所有线段的 collider 碰撞,效率很低的。。。应该尽量用一个整体来创建,比如 polygon collider

2.x 换了一个 web box2d 实现,大部分状态下应该都会更快的,

我在1.10跑过,确实比2.1.2流畅:joy:不过这个问题确实有很多可以尝试变通的地方,谢谢大佬的建议