瀏覽代碼

Return cast travel distance using m_closestHitFraction in ConvexCast() result. If desired, the distance to hit position from start position (earlier behavior) can be calculated manually. Closes #906.

Lasse Öörni 10 年之前
父節點
當前提交
e76dd6e4b9
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      Source/Urho3D/Physics/PhysicsWorld.cpp

+ 1 - 1
Source/Urho3D/Physics/PhysicsWorld.cpp

@@ -507,7 +507,7 @@ void PhysicsWorld::ConvexCast(PhysicsRaycastResult& result, btCollisionShape* sh
         result.body_ = static_cast<RigidBody*>(convexCallback.m_hitCollisionObject->getUserPointer());
         result.body_ = static_cast<RigidBody*>(convexCallback.m_hitCollisionObject->getUserPointer());
         result.position_ = ToVector3(convexCallback.m_hitPointWorld);
         result.position_ = ToVector3(convexCallback.m_hitPointWorld);
         result.normal_ = ToVector3(convexCallback.m_hitNormalWorld);
         result.normal_ = ToVector3(convexCallback.m_hitNormalWorld);
-        result.distance_ = (result.position_ - startPos).Length();
+        result.distance_ = convexCallback.m_closestHitFraction * (endPos - startPos).Length();
     }
     }
     else
     else
     {
     {