我正在使用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之前;是的,我知道括号不是必需的,但我认为视觉分组提供了更好的可读性,因此更容易理解它)