Creating my own flight physics?

Hi. I’m trying to make some realistic flight physics.

First… I’m trying to make the plane fly.

This is my aircraft:

What would be my best approach on making flight physics?

This is my current script:

	int curr_Speed;

	float lift;

	// Use this for initialization
	void Start () {
	// Update is called once per frame
	void Update () {

		curr_Speed = (int)(rigidbody.velocity.magnitude * 1 / 0.3f);


	void FixedUpdate() {

		rigidbody.AddRelativeForce(transform.forward * 4.5f);


This only make the plane move forward (of course). What would be my next step and where should I apply rotation forces?

Thanks in advance.


Probably u should try this script. . . .this is not really an advance script but just an example of where u can start

 public float maxSpeed;            // Our maximum speed allowed.
 public float decAltSpeed;        //Decrease Altitude.
 public float incAltSpeed;        // Increase Altitude.
 public float curSpeed;            // Current Speed;
 public float applySpeed;        // How much force to apply (Forward).
 public float airBrakeForce;        // Breaks.
 private Rigidbody myRigid;        // Our Rigidbody.
 void Start(){
     myRigid = GetComponent<Rigidbody>();        // Gets the players Rigidbody.
 void FixedUpdate(){
 curSpeed = myRigid.velocity.z;
 if(curSpeed >= maxSpeed){
     //If our speed maxes out to our maxSpeed we restrict our plane from going any faster.
     applySpeed = curSpeed;
         //Apply Accelleration
         myRigid.AddRelativeForce(Vector3.forward * applySpeed);
         if(curSpeed >=incAltSpeed){
             myRigid.AddRelativeForce(Vector3.up * AnyNumberYouWant);
         //Apply BREAKS
         myRigid.AddRelativeForce(Vector3.back * airBrakeForce);
         if(curSpeed <= decAltSpeed){
             myRigid.AddRelativeForce(Vector3.down * AnyNumberYouWant);
     void Update(){
         //You may have to move the '-' sign to the other one (- means opposite) E.G. - Negative so I THINK -Vector.up is left. Could be wrong though.
             transform.rotate(-Vector3.up * 15 * Time.deltaTime);
             transform.rotate(Vector3.up * 15 * Time.deltaTime);

hope u can get a idea

If you want to do it well, you’ll probably have to consider lift and downforce to the wings (depending on velocity and pressure) and variable gravity (depending on distance): g=G*Mearth/(radius+heightfromwater)^2
You should try implement windzones and high/low pressure zones

If you calculate all of this into separated vectors, you can finally sum all together and get the resulting force applied to the aircraft