forked from bartvdbraak/blender
BGE bug fix: dynamically added sensor objects didn't have their physic shape synchronized with movement.
This commit is contained in:
parent
d1f7a2ceee
commit
358ec00256
@ -92,7 +92,13 @@ void KX_BulletPhysicsController::SetObject (SG_IObject* object)
|
|||||||
gameobj->SetPhysicsController(this,gameobj->IsDynamic());
|
gameobj->SetPhysicsController(this,gameobj->IsDynamic());
|
||||||
CcdPhysicsController::setNewClientInfo(gameobj->getClientInfo());
|
CcdPhysicsController::setNewClientInfo(gameobj->getClientInfo());
|
||||||
|
|
||||||
|
if (m_bSensor)
|
||||||
|
{
|
||||||
|
// use a different callback function for sensor object,
|
||||||
|
// bullet will not synchronize, we must do it explicitely
|
||||||
|
SG_Callbacks& callbacks = gameobj->GetSGNode()->GetCallBackFunctions();
|
||||||
|
callbacks.m_updatefunc = KX_GameObject::SynchronizeTransformFunc;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MT_Scalar KX_BulletPhysicsController::GetRadius()
|
MT_Scalar KX_BulletPhysicsController::GetRadius()
|
||||||
|
@ -1115,15 +1115,8 @@ void KX_ConvertBulletObject( class KX_GameObject* gameobj,
|
|||||||
shapeInfo->Release();
|
shapeInfo->Release();
|
||||||
|
|
||||||
gameobj->SetPhysicsController(physicscontroller,isbulletdyna);
|
gameobj->SetPhysicsController(physicscontroller,isbulletdyna);
|
||||||
if (isbulletsensor)
|
|
||||||
{
|
|
||||||
// use a different callback function for sensor object,
|
|
||||||
// bullet will not synchronize, we must do it explicitely
|
|
||||||
SG_Callbacks& callbacks = gameobj->GetSGNode()->GetCallBackFunctions();
|
|
||||||
callbacks.m_updatefunc = KX_GameObject::SynchronizeTransformFunc;
|
|
||||||
}
|
|
||||||
// don't add automatically sensor object, they are added when a collision sensor is registered
|
// don't add automatically sensor object, they are added when a collision sensor is registered
|
||||||
else if (objprop->m_in_active_layer)
|
if (!isbulletsensor && objprop->m_in_active_layer)
|
||||||
{
|
{
|
||||||
env->addCcdPhysicsController( physicscontroller);
|
env->addCcdPhysicsController( physicscontroller);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user