Уроки

Boids — движение стаи птиц (Unity)

Алгоритм движения стаи птиц (flocking behavior) — позволяет перемещать группу объектов с определенными правилами. 

Основные правила:
  • Разделение — объекты пытаются быть на расстоянии друг от друга
  • Сплоченность — объекты пытаются сближаться 
  • Усреднение скоростей — объекты придерживаются средней скорости в группе

Две неплохие статьи на эту тему:
https://habr.com/ru/post/212721/
https://qastack.ru/codegolf/154277/implement-the-boids-algorithm


В моей игре он применен на маленьких точках — мухах. И имеет два дополнительных правила: 
  1. Мухи ограниченны в зоне перемещения радиусом
  2. Избегают хищников (ракеты)

Вообще, алгоритм с модификациями может быть применен для группы солдат в стратегии, для движения рыбок и т.д.

Ниже будет ссылка на бусти, где вы можете скачать данный алгоритм. Здесь покажу как он работает. 

Скрипт нужно повесить на объект в вашей стае. Обратите внимание, что позиция элемента стаи будет отталкиваться от позиции родителя, поэтому упаковывайте все элементы группы в нужный вам объект. 


У ракеты также есть этот компонент, но с флагом Obstacle — для мошек он является хищником и они его избегают. 


Касаемо кода, для удобного отображения в инспекторе, я использую плагин Odin Inspector, он платный, но это самое лучшее приобретение для юнити. Если его у вас нет, то просто удалите аттрибуты на которые у вас будет ругаться юнити. 

Вначале указываются значения в пределах которых рандом будет выбирать радиусы, в Start — они уже применяются и больше не изменяются. 


Полные исходники у меня на Boosty 
Made on
Tilda