fix avatar upward drift after shape change

This commit is contained in:
Andrew Meadows 2015-12-09 18:09:55 -08:00
parent 8c109fd623
commit 9e99bff250

View file

@ -80,9 +80,13 @@ void CharacterController::setDynamicsWorld(btDynamicsWorld* world) {
if (world && _rigidBody) { if (world && _rigidBody) {
_dynamicsWorld = world; _dynamicsWorld = world;
_pendingFlags &= ~PENDING_FLAG_JUMP; _pendingFlags &= ~PENDING_FLAG_JUMP;
// Before adding the RigidBody to the world we must save its oldGravity to the side
// because adding an object to the world will overwrite it with the default gravity.
btVector3 oldGravity = _rigidBody->getGravity();
_dynamicsWorld->addRigidBody(_rigidBody, COLLISION_GROUP_MY_AVATAR, COLLISION_MASK_MY_AVATAR); _dynamicsWorld->addRigidBody(_rigidBody, COLLISION_GROUP_MY_AVATAR, COLLISION_MASK_MY_AVATAR);
_dynamicsWorld->addAction(this); _dynamicsWorld->addAction(this);
//reset(_dynamicsWorld); // restore gravity settings
_rigidBody->setGravity(oldGravity);
} }
} }
if (_dynamicsWorld) { if (_dynamicsWorld) {