下载的最新的LayaAir IDE 2.0.0 beta3
使用的TS为编程语言
创建了两个Scene
在第一个场景里面添加了两个Sprite
并且在IDE中分别对其添加上RigidBody
然后用Laya.Scene.open("XXX.scene");进行场景跳转
没有问题
但是如果在第一个场景里面的一个物体添加了任意Joint
把Joint设置正确 链接好两个物体
确保Joint没有设置错误
这时候再使用Laya.Scene.open("XXX.scene");进行场景跳转
会在DestroyJoint这个地方报错:
Uncaught Error
at Object.box2d.b2Assert (laya.physics.js:38)
at box2d.b2World.DestroyJoint (laya.physics.js:793)
at Physics.__proto._removeJoint (laya.physics.js:2242)
at DistanceJoint.__proto._onDisable (laya.physics.js:1716)
at DistanceJoint.__proto._setActive (laya.core.js:730)
at Sprite.__proto._inActiveHierarchy (laya.core.js:13627)
at Scene_1_UI.__proto._inActiveHierarchy (laya.core.js:13632)
at Scene_1_UI.__proto._onRemoved (laya.core.js:13655)
at Scene_1_UI.__proto._setParent (laya.core.js:13372)
at Scene_1_UI.__proto._setParent (laya.core.js:18327)
如果手动尝试删除Joint
报错:
Uncaught TypeError: Cannot read property 'SetAwake' of undefined
at box2d.b2World.DestroyJoint (laya.physics.js:792)
at Physics.__proto._removeJoint (laya.physics.js:2242)
at Scene_1_UI.ts:18
我是Laya新手,不知道是我哪里设置没对,还是使用方法不对,还是其他原因。
官方文档翻遍了没有找到解决方法,Laya这次集成的Box2d好多方法又没有表露出来,无法按照Box2d原本的方式清除物理引擎内容。
所以我想问下
1、scene里面有带有物理组件的物体在场景切换时该如何处理呢?
2、是否可以多提供一些Box2d的方法呢,比如最基础的world.getBodyList()用于遍历物体列表的功能等等。
附件:
laya_test_2.zip