使用 addComponent 添加的 RigidBody 和 PhysicsBoxCollider 组件,只有碰撞事件,无碰撞效果。求解

现在有sprite A、B、C。
A和B是在场景编辑器里添加的sprite,附有RigidBody 和 PhysicsBoxCollider 组件。A和B碰撞能正常触发碰撞事件和碰撞效果。 碰撞效果即:A为Dynamic,B为Kinematic, 开启重力引擎后,A可以掉在B上面并触发碰撞事件。

C是代码生成的Node,使用addComponent添加的RigidBody 和 PhysicsBoxCollider 组件。 C和A碰撞 只能触发碰撞事件,但是无碰撞效果。碰撞效果即:A为Dynamic,C为Kinematic, 开启重力引擎后,A无法掉在B上面,触发碰撞事件后直接穿过了C,但ABC的sensor属性一直都是false。

在Chrome里的调试信息, B和C的属性没有看到区别,但C就是比B缺个碰撞效果。求解~


上图为B和C的PhysicsBoxCollider组件属性。左侧为C,右侧是B。

再附上两个组件的刚体属性。

调试了半天已经找到原因, cocos creator 引擎里同一个刚体在本地坐标系里的碰撞盒体积 和 世界坐标系的碰撞盒体积竟然不一样大。
动态创建的节点C的刚体, 本地坐标系的碰撞和体积 如一楼图中所示,width=864,height=32。
但是在世界坐标系里的碰撞盒宽高竟然全都是101.024,如下图getAABB()获取到的世界坐标系碰撞盒体积。

但是我查了API没看到有如何修改世界坐标系的碰撞盒体积, 求解决方案~