-
Creator 版本:2.0.10
-
目标平台: Web maybe ALL
-
详细报错信息,包含调用堆栈: collider not added or already removed
-
重现方式:为 Node 添加 PhysicsCollider 组件,运行时修改 node.group 属性,即会报错。
-
之前哪个版本是正常的 :
-
手机型号 :
-
手机浏览器 :
-
编辑器操作系统 :
-
编辑器之前是否有其它报错 :
-
出现概率:必现
-
额外线索:
-
BUG 原因: PhysicsCollider 组件并没有交给 CollisionManager 管理。修改 node.group 属性,
NodeEvent.GROUP_CHANGED 触发后,获取 Node 上所有 Collider 组件(包含 PhysicsCollider)用来删除。
onNodeGroupChanged: function (node) {
let colliders = node.getComponents(cc.Collider);
for (let i = 0, l = colliders.length; i < l; i++) {
this.removeCollider(colliders[i]);
this.addCollider(colliders[i]);
}
},
colliders 获取到 PhysicsCollider 组件,ColliderManager 中没有,删除添加就会报错