Задать вопрос
@AnzousDGC

Как правильно реализовать движение персонажа в Unity 2D?

Прошу вашей помощи. Разрабатываю 2D платформер. Не понимаю как реализовать корректное отталкивание персонажа от взрыва бомбы - его отталкивает корректно только по оси Y, по X эффект очень слаб (взрыв реализован с помощью point effector по официальному гайду)
Просмотрев код движения персонажа я нашёл причину такого поведения - velocity.x каждый кадр задается как 0, если игрок не двигается. Но как я не пытался это исправить - персонаж либо также некорректно себя ведёт, либо начинает безостановочно скользить по направлению движения.
Код приложить не могу, но кратко опишу: персонаж двигается с помощью velocity, что безостановочно выполняется в FixedUpdate. В velocity используется переменная dir (задает направление) и если персонаж останавливается, то dir=0.
Пытался ввести bool переменную, но персонаж начинает скользить. Если персонаж движется и попадает в радиус взрыва - его корректно откидывает, иначе если он стоит на месте - ничего не происходит, либо откидывает немного в сторону и резко вверх.
  • Вопрос задан
  • 404 просмотра
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Пригласить эксперта
Ответы на вопрос 1
Griboks
@Griboks Куратор тега C#
У вас движение реализовано через координаты, а отталкивание - через силы. Используйте что-то одно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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