gpt4 book ai didi

c# - 在Unity3D中击中来袭导弹(简单的射弹导弹)

转载 作者:行者123 更新时间:2023-11-30 17:05:21 26 4
gpt4 key购买 nike

我想在 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 导弹系统正确设置了它的角度,但它不能设置准确的时间和速度,所以它可以击中导弹。

最佳答案

你需要一些专业的东西:指数曲线拟合。

http://mathworld.wolfram.com/LeastSquaresFittingExponential.html http://mste.illinois.edu/malcz/ExpFit/FIRST.html

http://www.ni.com/cms/images/devzone/tut/image7_20080714213910.JPG

您将所有点作为曲线获取并找到曲线的系数,然后外推下一个点。您的算法对于整条曲线似乎有点线性,但仅适用于最新的点,这还不够。

也称为非线性回归。

在这里,另一个 stackexchange 答案:https://stats.stackexchange.com/questions/20271/exponential-curve-fitting-with-a-constant

关于c# - 在Unity3D中击中来袭导弹(简单的射弹导弹),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16634643/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com