@bad22vk

Физика движка Unity2d. Как сделать отскок?

Необходимо сделать элементарный отскок персонажа при получение урона.
Смог смастерить следующий код:

if (collision.gameObject.tag == "Vrag")
        {
            gameObject.GetComponent<Rigidbody2D>().AddForce(transform.up * direction * powerForce, ForceMode2D.Impulse);
            TakeDamagee();
            hpText.text = ((int)hp).ToString();
        }


То есть мы получаем урон и персонаж с определённой силой подскакивает.
Но ведь нужно, чтобы он ещё и по Х переместился.
Я пытался прописать transform.right , но это ничего не давало.
  • Вопрос задан
  • 202 просмотра
Пригласить эксперта
Ответы на вопрос 1
DanceM
@DanceM Куратор тега Unity Game Engine
Кто хочет -ищет способ, кто не хочет -ищет причину
... AddForce(transform.up * direction * powerForce, ...

Это вектор вашего отскока, в нем и задавайте направление, например
var bounceDirection =  transform.up * powerForceUp + transform.right * powerForceRight;


пытался прописать transform.right , но это ничего не давало

Могу представить, что может трение мешать в такой ситуации, будет стоять на месте в момент получения импульса, но трение можно отключить на время импульса.
Но скорее ваш код управления движением персонажа перехватывает позицию и не дает двигаться в стороны.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы