Fix mesh collider not rotating correctly due to negative scale.

This commit is contained in:
Chandler Cox
2024-07-11 18:44:55 -05:00
parent 009e1aaebb
commit 7b4e509140

View File

@@ -133,7 +133,13 @@ void MeshCollider::GetGeometry(CollisionShape& collision)
// Prepare scale
Float3 scale = _cachedScale;
const float minSize = 0.001f;
scale = Float3::Max(scale.GetAbsolute(), minSize);
Float3 scaleAbs = scale.GetAbsolute();
if (scaleAbs.X < minSize)
scale.X = Math::Sign(scale.X) * minSize;
if (scaleAbs.Y < minSize)
scale.Y = Math::Sign(scale.Y) * minSize;
if (scaleAbs.Z < minSize)
scale.Z = Math::Sign(scale.Z) * minSize;
// Setup shape (based on type)
CollisionDataType type = CollisionDataType::None;