Часто в 2д платформере нужна возможность горизонтально передвигать твердое тело без учета его ускорения и прочих сил.
Словно через трансформ, но все же в будущем воздействовать на него силы должны, не говоря уже о гравитации, она вообще всегда должна работать.
Во многих статьях это реализуют через прямое воздействие на Velocity.
Пример:
rb.velocity = new Vector2 (Input.GetAxis("Horizontal"), rb.velocity);
Но, что если при ударе снаряда мой персонаж должен отлетать по вектору (-10,10);
AddForce(new Vector2(-10,10), ForceMode2D.Impulse);
Если я ничего не нажимаю, то компонент Х вектора Velocity всегда сбрасывается в 0, что не позволит совершить такой маневр.
Прямое взаимодействие с велосити у меня постоянно приводит к головной боли если есть другие силы, которые воздействуют на игрока.
Я пытался это сделать через AddForce, но не могу полностью избавиться от "слайдинга" и ускорения.
Как решается подобная задача?