我正在创建一个台球桌统一游戏。我想获得球的方向以向用户显示球将移动的位置。以下图为例。
这里 A 是我们的 cueBall,B 是桌上的球。让我们考虑一下,当用户按照“DIR 1”的方向击球 A 时,它将击中球 B,此时球 A 将在 C 的位置,如图所示。
现在我想知道有一点
- 如何找到c的位置。
- B&C的接触点是什么意思是A会和B碰撞到哪个地方。
- 球 B 与 A 碰撞后将向哪个方向移动。
我希望这个问题对所有人都很清楚,并为我的问题提供适当的细节。
我正在创建一个台球桌统一游戏。我想获得球的方向以向用户显示球将移动的位置。以下图为例。
这里 A 是我们的 cueBall,B 是桌上的球。让我们考虑一下,当用户按照“DIR 1”的方向击球 A 时,它将击中球 B,此时球 A 将在 C 的位置,如图所示。
现在我想知道有一点
我希望这个问题对所有人都很清楚,并为我的问题提供适当的细节。
假设您在球上使用刚体,您可以使用:
http://docs.unity3d.com/Documentation/ScriptReference/Rigidbody.SweepTest.html
您将使用“DIR1”作为 SweepTest 函数的参数。
一旦它返回“真”并确认碰撞,您可以使用 RaycastHit.distance 和“DIR1”来计算位置“C”
使用位置“C”、RaycastHit.point(撞击位置)和位置“B”,您现在可以计算“DIR2”。
--
Physics.Capsule cast 也是另一种选择 > http://docs.unity3d.com/Documentation/ScriptReference/Physics.CapsuleCast.html