RAINOGD
@RAINOGD
PHP, C#, Unity3d программист.

Как равномерно двигать объект (пуля)?

Ситуация такова - есть 2 игрока, которые могут перемещаться и стрелять в друг друга в поле битвы. Когда они стреляют в друг друга, то пуля летит в то направление, где стоял противник во время выстрела. Если пуля не попала по врагу, то он просто дальше продолжает лететь и ударяясь об стену, он меняет свое направление по законам физики и дальше продолжает свой путь. То есть пуля не исчезнет никогда, а продолжит парить в поле.
Как это сделать? Чтобы объект (пуля) "свободно" и равномерно летел, и при столкновении со стеной, он менял свое направлении (рикошетил)? (C# скрипт, или как еще можно это сделать).
  • Вопрос задан
  • 234 просмотра
Решения вопроса 2
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Проще всего такое делать физикой. Чтобы пули взаимодействовали с коллайдерами вам нужно повесить на них Rigidbody и отключить трение и гравитацию. Помимо этого на коллайдер пули нужно повесить физический материал с нулевым трением и единичной прыгучестью, чтобы при столкновении пули не тормозились. При выстреле запускаете пули с помощью Rigidbody.AddForce или Rigidbody.velocity, и после этого они будут вечно лететь и отскакивать от всех поверхностей.
Ответ написан
Комментировать
MrMureno
@MrMureno Куратор тега Unity
VR for all
все что вы описали..делать ФИЗИКОЙ.
на пулю вешаем Rigitbody
https://docs.unity3d.com/ru/530/Manual/class-Rigid...
и на старте придаем ей силу/скорость/ускорение.
чтоб рикошетило от стен и прочего - надо чтоб стены и прочее содержали коллайдеры. почитайте про физику в Unity. тут парочка офф видео уроков - вам все прояснили б.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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