// Update is called once per frame void FixedUpdate() { //AccelDecel player = chopper.GetComponent<AccelDecel>(); /* * if (chopper.transform.position.y <= -65) * { * player.Speed = 0; * // coll.attachedRigidbody.useGravity = false; * chopper.GetComponent<Rigidbody>().useGravity = false; * chopper.transform.position = new Vector3(0, -40, 0); * chopper.transform.Translate(Vector3.up * Time.deltaTime * hover); * //SceneManager.LoadScene("Test2"); * }*/ if (chopper.transform.position.y <= -45) { float yVel = rb.velocity.y + Physics.gravity.y; rb.AddForce(0, -yVel, 0, ForceMode.Acceleration); rb.AddForce(0, Input.GetAxis("Vertical") * 5, 0); //player.Speed = 0; // coll.attachedRigidbody.useGravity = false; //chopper.GetComponent<Rigidbody>().useGravity = false; //chopper.transform.position = new Vector3(0, -40, 0); //chopper.transform.Translate(Vector3.up * Time.deltaTime * player.Speed * -7); // hover = hover * 2; //SceneManager.LoadScene("Test2"); } /* if( chopper.transform.position.y <= -55) * { * // player.Speed = 0; * chopper.GetComponent<Rigidbody>().useGravity = false; * * // chopper.transform.position = new Vector3(transform.position.x, -45, transform.position.z); * chopper.transform.Translate(Vector3.up * Time.deltaTime * player.Speed *-15); * }*/ else { chopper.GetComponent <Rigidbody>().useGravity = true; } }
private void Start() { // Get all quadcopters in the scene Quadcopter[] drones = FindObjectsOfType <Quadcopter>(); // Throw an exception if there is more than one quadcopter if (drones.Length > 1) { throw new System.Exception("Multiple quadcopters detected."); } // Initialization drone = drones[0]; motorThrust = (drone.MotorNE.maxThrust + drone.MotorNW.maxThrust + drone.MotorSE.maxThrust + drone.MotorSW.maxThrust) / 4.0f; rBody = drone.GetComponent <Rigidbody>(); // Make sure the quadcopter has a rigidbody if (rBody == null) { throw new System.Exception("Rigidbody on quadcopter is missing."); } // Make sure the rigidbody parameters have not been modified if (rBody.isKinematic == true || rBody.useGravity == false || rBody.constraints != RigidbodyConstraints.None) { throw new System.Exception("Quadcopter rigidbody paramters do not match."); } // Initiazation lastPos = drone.transform.position; lastVel = rBody.velocity; lastMotors = new float[] { drone.MotorNE.Power, drone.MotorNW.Power, drone.MotorSE.Power, drone.MotorSW.Power }; }