Работает - не трогай)
А если серьёзно,
Код
Quaternion target = Quaternion.Euler(0,0,Mathf.Clamp(GetComponent<Rigidbody2D>().velocity.y * 20, -90, 90));
Quaternion.Euler - возвращает вектор, на который поворачивается объект,
Mathf.Clamp - возвращает значение скорости по оси Y умноженное на 20 и ограниченное между -90 и 90
Код
transform.rotation = Quaternion.Slerp(transform.rotation,target, Time.deltaTime * 10);
Quaternion.Slerp - интерполирует угол от текущего к target, со скоростью Time.deltaTime * 10.