public static void UpdateSteering(Steering behavior, Bird bird, float dt) { if (behavior == null) return; var steering = behavior.GetSteering(); if (!steering.IsNoSteering()) { // update position bird.velocity += steering.linearVel * dt; bird.velocity = Vector3.ClampMagnitude(bird.velocity, bird.maxSpeed); if (bird.maxSpeed != 0f) { var rotation = Quaternion.LookRotation(bird.velocity); bird.transform.rotation = Quaternion.Slerp(bird.transform.rotation, rotation, 1f); } } else bird.GetComponent<Rigidbody>().velocity = Vector3.zero; }