轨道碰撞角度

时间:2013-02-26 00:28:15

标签: c# unity3d game-physics

我正在制作游戏,目前我的物体在固定距离的球体周围连续旋转。我需要让对象互相反弹。有谁知道我怎么能这样做?

我有碰撞检测工作,每个对象都有一个边界球体。我能够获得碰撞点,我只需要从每个物体获取当前的旋转矢量并得到所产生的“反弹”角度(矢量旋转)并让每个物体继续围绕它的新矢量轨道运行。

如果这没有意义,或者你还需要什么,请告诉我!我应该提到这是使用Unity3D完成的(我没有使用刚体,或出于性能原因使用内置物理引擎)

修改

这是我尝试过的:

public void OnTriggerEnter(Collider collider)
{
    // Determine resultant rotation axis
    Vector3 collisionNormal = collider.ClosestPointOnBounds(thisTransform.position);
    rotationAxis = Vector3.Reflect(rotationAxis, collisionNormal);
}

以下是Unity3D文档中Vector3.Reflect()方法的链接:Vector3.Reflect()

此时,物体不会以新碰撞的方向开始移动,然后不会反弹。它们似乎在发生碰撞时停止。

0 个答案:

没有答案