我想在unity3D中制作地对空导弹系统,它可以在时间't'之后预测来袭导弹的位置,并在3D坐标中设置其拦截导弹的角度和位置,以便它可以击中来袭导弹。我正在使用以下功能来预测来袭导弹。
void UpdateTrajectory(Vector3 initialPosition, Vector3 initialVelocity, Vector3 gravity)
{
int numSteps = 500;
float timeDelta = 1.0f / initialVelocity.magnitude;
LineRenderer lineRenderer = GetComponent<LineRenderer>();
lineRenderer.SetVertexCount(numSteps);
Vector3 position = initialPosition;
Vector3 velocity = initialVelocity;
for (int i = 0; i < numSteps; ++i)
{
lineRenderer.SetPosition(i, position);
position += velocity * timeDelta + 0.5f * gravity * timeDelta * timeDelta;
velocity += gravity * timeDelta;
}
}
我正在使用线渲染器来获得视觉轨迹显示。现在我只能在几个位置击中导弹,这意味着我:P 必须手动调整。我的 SAM 导弹系统正确设置了它的角度,但它无法设置准确的时间和速度,因此它可以击中导弹。