Как правильно реализовать движение персонажа в Unity 2D?
Прошу вашей помощи. Разрабатываю 2D платформер. Не понимаю как реализовать корректное отталкивание персонажа от взрыва бомбы - его отталкивает корректно только по оси Y, по X эффект очень слаб (взрыв реализован с помощью point effector по официальному гайду)
Просмотрев код движения персонажа я нашёл причину такого поведения - velocity.x каждый кадр задается как 0, если игрок не двигается. Но как я не пытался это исправить - персонаж либо также некорректно себя ведёт, либо начинает безостановочно скользить по направлению движения.
Код приложить не могу, но кратко опишу: персонаж двигается с помощью velocity, что безостановочно выполняется в FixedUpdate. В velocity используется переменная dir (задает направление) и если персонаж останавливается, то dir=0.
Пытался ввести bool переменную, но персонаж начинает скользить. Если персонаж движется и попадает в радиус взрыва - его корректно откидывает, иначе если он стоит на месте - ничего не происходит, либо откидывает немного в сторону и резко вверх.