查找着陆点



我正在使用addforce将物体抛向空中,我想在着陆点的位置实例化飞机,我该怎么做?我想用Unity Physics API计算着陆点,但我不知道怎么做。

我已经尝试了一些关于射弹的代码,但它无济于事

if (other.tag == "CarPlayer")
{
    other.gameObject.GetComponentInParent<Rigidbody>().AddForce(0, 1 * power, 1 * power, ForceMode.Impulse);
}

我真的需要一个算法来找到物体将要着陆的实际点

据我所知,你将不得不自己做数学;Unity 没有内置的即时模拟。

网上已经有很多关于这方面的资源,例如这个关于轨迹模拟的维基页面,这可能会对你有所帮助。

如果您需要计算力等(与您所要求的相反),请查看此博客,其中计算了所需的轨迹。源代码

最简单的答案可能是使用这样的东西:

public Vector3 PlotTrajectoryAtTime (Vector3 start, Vector3 startVelocity, float time) 
{
    return (start) + (startVelocity * time) + (Physics.gravity * time * time * 0.5f);
}

(在你开始解释PEMDAS之前;是的,我知道括号不是必需的,但我认为视觉分组提供了更好的可读性,因此更容易理解它)

相关内容

  • 没有找到相关文章

最新更新