fixing bug in editor bodies for rigid bodies with non-uniformly scaled asset colliders with position offsets

main
greerdv 5 years ago
parent a99786fe59
commit 87a3dfc968

@ -45,12 +45,14 @@ namespace PhysX
continue;
}
const Physics::ColliderConfiguration colliderConfiguration = collider->GetColliderConfigurationScaled();
const Physics::ColliderConfiguration colliderConfigurationScaled = collider->GetColliderConfigurationScaled();
const Physics::ColliderConfiguration colliderConfigurationUnscaled = collider->GetColliderConfiguration();
if (shapeConfigurationProxy.IsAssetConfig())
{
AZStd::vector<AZStd::shared_ptr<Physics::Shape>> shapes;
Utils::GetShapesFromAsset(shapeConfigurationProxy.m_physicsAsset.m_configuration,
colliderConfiguration, hasNonUniformScaleComponent, shapeConfigurationProxy.m_subdivisionLevel, shapes);
colliderConfigurationUnscaled, hasNonUniformScaleComponent, shapeConfigurationProxy.m_subdivisionLevel, shapes);
for (const auto& shape : shapes)
{
@ -64,7 +66,7 @@ namespace PhysX
if (!hasNonUniformScaleComponent)
{
AZStd::shared_ptr<Physics::Shape> shape = AZ::Interface<Physics::System>::Get()->CreateShape(
colliderConfiguration, shapeConfiguration);
colliderConfigurationScaled, shapeConfiguration);
AZ_Assert(shape, "CreateEditorWorldRigidBody: Shape must not be null!");
if (shape)
{
@ -73,7 +75,6 @@ namespace PhysX
}
else
{
const Physics::ColliderConfiguration colliderConfigurationUnscaled = collider->GetColliderConfiguration();
auto convexConfig = Utils::CreateConvexFromPrimitive(colliderConfigurationUnscaled, shapeConfiguration,
shapeConfigurationProxy.m_subdivisionLevel, shapeConfiguration.m_scale);
auto colliderConfigurationNoOffset = colliderConfigurationUnscaled;

Loading…
Cancel
Save