2017-01-29 24 views
-2

Я делаю 2D-платформерную игру в Unity, и у меня есть проблема: если мой игрок перешагивает край, игрок падает вдоль траектории дуги. Я хочу заставить игрока упасть на край, как камень? Невозможно изменить значение силы тяжести. enter image description hereUnity2D (C#) - падение над краем, как камень

+0

Это будет лучше, если и объяснить, что такое падение, как камень средства? – utkdub

+0

Неужели ты хочешь сказать, что не вращался, просто будучи еще во время падения? – utkdub

+0

Когда игрок идет по краю, я хочу: игрок падает как камень (абсолютный по вертикали) – Adam

ответ

1

Предполагая, что вы используете 2D-физику с Rigidbody2D и Collider2D, вы можете в своем скрипте игрока установить горизонтальную скорость в 0, если игрок не заземлен. Чтобы проверить, заземлен ли он, взгляните на Physics2D.CircleCast().

Таким образом, вы могли бы добавить что-то вроде этого в сценарий:

Rigidbody2D rb2d = GetComponent<Rigidbody2D>(); 
if (isGrounded == false) 
    rb2d.velocity = new Vector2(0, rb2d.velocity.x); 
+0

Это не работает для меня. – Adam

+2

Что значит «не работает»? Убедитесь, что вы только добавляете силу своему игроку с входа, если 'isGrounded = true'. –

+0

Игрок прыгает неправильно – Adam