如何在Unity3d中获取球杆碰撞其他球之后的方向?

4
我正在创建一个池桌Unity游戏。我想获取球的方向,以向用户展示球将移动的方向。请参考以下图片。
在这里,A是我们的球杆,B是桌子上的球。假设当用户按照“DIR 1”的方向击打A球时,它会撞到B球,此时球A将位于图像中的C位置。
现在我想知道以下几点:
1. 如何找到C的位置。 2. B和C的接触点是什么意思,即A将与B碰撞的地方。 3. A撞击B后,B球将朝哪个方向移动。
希望我的问题对大家很清楚,并为我的问题提供适当的细节。
1个回答

0
假设您在小球上使用了刚体,您可以使用以下代码:

http://docs.unity3d.com/Documentation/ScriptReference/Rigidbody.SweepTest.html

你将使用你的'DIR1'作为SweepTest函数的参数。

一旦它返回'true'并确认了碰撞,你可以使用RaycastHit.distance和'DIR1'来计算位置'C'

有了位置'C'、RaycastHit.point(碰撞点位置)和位置'B',现在你可以计算'DIR2'了。

--

Physics.Capsule cast是另一个选项 > http://docs.unity3d.com/Documentation/ScriptReference/Physics.CapsuleCast.html


SweepTest方法更接近我的解决方案,但并不是我正在寻找的完全正确的方法。 - Crazy Developer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接