Использовать нормальное перемещение, а не через AddForce.
Используйте velocity у Rigidbody, чтобы задавать конкретную скорость, а не какую-то силу.
Вот пример:
using UnityEngine;
[RequireComponent(typeof(Rigidbody2D))]
public class Bird : MonoBehaviour
{
[SerializeField] private float _speed;
[SerializeField] private float _jumpSpeed;
private Rigidbody2D _rb;
private void Start()
{
_rb = GetComponent<Rigidbody2D>();
}
private void Update()
{
Move();
if (Input.GetKeyDown(KeyCode.Space))
{
Jump();
}
}
private void Jump()
{
var velocity = _rb.velocity;
velocity.y = _jumpSpeed;
_rb.velocity = velocity;
}
private void Move()
{
var velocity = _rb.velocity;
velocity.x = _speed;
_rb.velocity = velocity;
}
}
В методе Move устанавливаем скорость по оси Х, тем самым персонаж двигается вправо. В методе Jump устанавливаем скорость по оси Y и персонаж прыгает. Это лишь пример того, как можно делать движение через velocity, реализуйте все под свои нужды. Используя перемещение через velocity, куда проще будет отбалансить игру, просто изменив скорость на нужную, нежели гадать какую силу нужно приложить к объекту, чтобы он прыгал выше.