public void UpdateEngine(Rigidbody rb, Drone_Inputs input) { // to help it float Vector3 upVector = transform.up; upVector.x = 0f; upVector.z = 0f; float diff = 1 - upVector.magnitude; float finalDiff = Physics.gravity.magnitude * diff; Vector3 engineForce = Vector3.zero; engineForce = transform.up * ((rb.mass * Physics.gravity.magnitude + finalDiff) + (input.Throttle * maxPower)) / 4f; rb.AddForce(engineForce, ForceMode.Force); // induce psuedo drag if (input.Throttle == 0) { ticks++; if (ticks == 600) { rb.angularVelocity = Vector3.zero; } } else { ticks = 0; } HandlePropellers(); }
// Start is called before the first frame update void Start() { input = GetComponent <Drone_Inputs>(); engines = GetComponentsInChildren <Engine>().ToList <Engine>(); // myCamera = GameObject.FindWithTag("drone_cam").GetComponent<Camera>(); myCamera = Camera.main; }