我想做一个简单的飞机控制器,看起来一点也不现实。我看了一些飞机物理学的视频。并统一编写一个简单的脚本,但是如果我开始,飞机无法移动,或者如果将阻力更改为零,飞机将无法升起。我试图使用真实数据并从Wiki(F22 Raptor)中获取数据。对于我的游戏对象,我给定了刚体组件的质量= 19670 kg。发动机推力= 2 * 116000.0f牛顿。
private void calculateEnginePower()
{
EnginePower = engineThrust * ThrottleInput;
}
private void calculateForces()
{
angleOfAttack = Vector3.Angle(Vector3.forward, rb.velocity);
angleOfAttack = Mathf.Clamp(angleOfAttack, 0, 90);
coefficient = Mathf.Pow(1225.04f * rb.velocity.magnitude, 2) - 1; //M^2-2 where: M is mach.
if (coefficient > 0.0f)
coefficientLift = (4 * angleOfAttack) / Mathf.Sqrt(coefficient);
lift = 1.2754f * 0.5f * Mathf.Pow(rb.velocity.magnitude, 2) * coefficientLift * 78.04f; // densy1.2754 kg/m3, speed m/s , (F22)Wing area: 840 ft² (78.04 m²)
coefficientDrag = …Run Code Online (Sandbox Code Playgroud)