Все материалы на сайте — ассеты, 3D-модели, логотипы и другие объекты — предоставлены исключительно в ознакомительных и учебных целях. У этих материалов есть правообладатели, которые, возможно, не давали согласия на работу со своими произведениями в рамках данного ресурса.
Local Avoidance
Этот пакет содержит быстрое и легкое решение для локального обхода препятствий. Он разработан с учетом DOTS и использует преимущества новейшего технологического пакета Unity, такого как SIMD mathematics, Jobs и Burst compiler.
Локальный обход позволяет агенту избегать динамических препятствий с точностью, скоростью и без предварительной обработки. Однако имейте в виду, что это не заменяет глобальную навигацию (и т.д.). Решения A* Pathing предназначены для поиска наиболее оптимального пути обхода статичных препятствий. Локальное избегание предназначено для использования в дополнение к такой системе в полномасштабной игре.
В своей основе он использует новое решение, которое во многом вдохновлено игрой Starcraft 2.
Есть ли компоненты, которые я могу использовать?
Нет, вся логика разделена на единую структуру, и никакие компоненты не используются. Таким образом, обеспечивается простая интеграция в любую существующую глобальную систему поиска путей, независимо от того, является ли она OOD или DOD.
По этой причине этот пакет настоятельно рекомендуется для людей, имеющих опыт программирования, поскольку от пользователя ожидается интеграция решения в их собственную экосистему. Существуют демонстрационные версии готовых компонентов, но они приведены исключительно в качестве примеров.
Для тех, кому нужны монокомпоненты или реализация на основе ecs, вы можете проверить версию 3.0 в качестве Agents Navigation.
Что такое API?
Все решение для предотвращения ошибок содержится в единой структуре под названием SonarAvoidance. Использование структуры состоит в основном из 4 этапов: создание, добавление препятствий, определение направления обхода и очистка.
var sonar = новый гидролокатор SonarAvoidance(...)
.Вставьте гидролокатор-препятствие(...)
.Гидролокатор FindClosestDirection (отклонение от направления float3)
.Dispose()
Основные действия
Управляет навигацией в обход вогнутых препятствий
Обводит цель кругом
Избегает перемещения лицом к лицу
Точно соблюдает радиус
Предсказывает столкновения и избегает их на основе этого
Избегает только при необходимости
Зависимости
Протестировано с Unity 2019.4
Пакет com.unity.mathematics
Пакет com.unity.collections
Пакет com.unity.burst
Примечание: Сюда не входит глобальное предотвращение, которое обычно выполняется с использованием алгоритма* в структурах данных, таких как NavMesh или Grid, и предназначено для статических препятствий. Локальное предотвращение обычно используется в качестве дополнительной системы, предназначенной для динамического предотвращения препятствий.
