我正在尝试模拟一个进入行星轨道的小行星(以一种简化的方式-我不是要完美的现实主义)。这颗小行星接近行星附近的某个区域,并且在它飞离行星时最接近该行星的那个点,我将其运动切换为使用Transform.RotateAround绕行星运行。
我已经使它适用于从一个方向接近的小行星,但是小行星可以从任何方向接近,而且我不知道如何计算任何给定小行星的轴。
这本质上就是我所拥有的:
if (orbiting)
{
transform.RotateAround(orbitTarget.position, orbitAxis, orbitSpeed);
}
else if (lastDistance < GetDistanceFromOrbitTarget())
{
orbiting = true;
orbitSpeed = thisRigidbody.velocity.magnitude;
orbitAxis = ??? //How do I calculate this?
}
else
{
lastDistance = GetDistanceFromOrbitTarget());
}
这是预期的结果: orbit gif
谢谢。