目前用的是3.6, 看了3.4的源码也是一样
PhysicsJoint::setEnable()和PhysicsJoint::removeFormWorld()均无效。
PhysicsJoint::PhysicsJoint()
: _bodyA(nullptr)
, _bodyB(nullptr)
, _world(nullptr)
, _enable(false)
, _collisionEnable(true)
, _destoryMark(false)
, _tag(0)
, _maxForce(PHYSICS_INFINITY)
, _initDirty(true)
{
}
```
源码如上,_world初始化为空后貌似没赋值过,log到_world恒为空
void PhysicsJoint::setEnable(bool enable)
{
if (_enable != enable)
{
_enable = enable;
if (_world)
{
if (enable)
{
_world->addJoint(this);
}
else
{
_world->removeJoint(this, false);
}
}
}
}
```
void PhysicsJoint::removeFormWorld()
{
if (_world)
{
_world->removeJoint(this, false);
}
}
```
这两个方法中if(_world)中代码不会被执行,那么要这两个方法干嘛用?