Как сделать, чтобы персонажа отталкивало в обратную сторону при получении урона в unity?

Как сделать, чтобы персонажа отталкивало в обратную сторону при получении урона в unity?
У меня есть персонаж, и надо сделать, чтобы его отбрасывало в обратную сторону, когда он получает урон, как мне это реализовать? Допустим, когда персонаж набегает на шипы, то ему наносится один урон и его отталкивает в сторону, противоположную его движению.

633d8feb6861d145102128.png
  • Вопрос задан
  • 576 просмотров
Пригласить эксперта
Ответы на вопрос 3
MSerhio
@MSerhio
Вхожу в IT
Самое простое, что приходит в голову - в каждом кадре считать вектор движения (дельта текущей позиции и позиции в прошлом кадре) и при столкновении с препятствием прикладывать силу в обратном этому вектору направлении. Если вы не используете физический движок, придется дописать метод, который будет вызываться при коллизии и по вашим правилам двигать персонажа назад.
Ответ написан
Комментировать
@Venus311
yokubari do ko demo
ну проще всего сделать как то так:
transform.position = new Vector2(0, 1); //типа прыжок
transform.position = new Vector2(1,0); // Толчок в сторону (в данном случае вправо)

толчок зависит от того куда направлен игрок, думаю вы разберётесь
Ответ написан
@Ezekiel4
Охотник на пиратов и сборщик монолитов
Используете ли вы физику юнити или нет, у вас есть возможность в поля класса кешировать последний вектор движения, который вы к персонажу прикладывали. Умножьте этот вектор на -1 и это будет обратное направление. Затем толкните персонажа по направлению этого вектора с некоторой силой.
Ну или просто сделайте коллайдер шипов непроходимым, создайте физический материал с изменённым параметром bounce и киньте на шипы. Таким образом персонаж будет отпрыгивать при коллизии.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы