Как сделать отдачу при выстреле 2D? Я хочу сделать так чтоб игрок стрелял допустим к себе под ноги и его откидывало вверх, если стреляет вправо, то его откидывает назад , тобишь влево
Смотря как стрельба сделана.
А так например по “unity 2d recoil” гуглится много материалов.
Тут выстрел это условно, мне надо чтобы при нажатии на левую кнопку мыши меня отталкивало назад
Так это ж то же самое, что и любое передвижение объектов программно.
Например Unity - Scripting API: Vector2.MoveTowards
Используйте Rigidbody2D в режиме Dynamic. И при выстреле применяйте силу в нужном направлении.
public class PlayerShooting : MonoBehaviour
{
    public Rigidbody2D rb;
    public float recoilForce = 10f;  // Сила отдачи
    private void Awake()
    {
        rb = GetComponent<Rigidbody2D>();
    }
    public void Shoot()
    {
        // Определите направление отдачи в зависимости от направления выстрела игрока
        Vector2 recoilDirection = CalculateRecoilDirection();
        // Примените силу отдачи к Rigidbody2D объекта игрока
        rb.AddForce(recoilDirection * recoilForce, ForceMode2D.Impulse);
    }
    private Vector2 CalculateRecoilDirection()
    {
        // Определите направление отдачи в зависимости от направления выстрела игрока
        // Получите направление выстрела игрока
        Vector2 shootDirection = GetShootDirection();
        // Определите направление отдачи, инвертируя направление выстрела
        Vector2 recoilDirection = -shootDirection;
        return recoilDirection;
    }
    private Vector2 GetShootDirection()
    {
        // Возвращает направление выстрела в зависимости от ввода игрока (направление стрельбы)
        // Пример: возвращение вектора направления относительно положения мыши
        Vector2 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        Vector2 playerPosition = transform.position;
        Vector2 shootDirection = (mousePosition - playerPosition).normalized;
        return shootDirection;
    }
}
Спасибо, скрипт рабочий