reckfellENGINE

Соединение регионов: сетка и допуск границ

Проверить шов без случайного открытия запрещённых проходов.

На этой странице

У соседних навигационных регионов есть два разных механизма соединения: объединение рёбер через сетку карты и дополнительные соединения близких рёбер по допуску. edge_connection_margin управляет вторым механизмом. Простое увеличение допуска не исправляет любую геометрию и может открыть нежелательный проход.

Проверять в правильном порядке

  1. Убедитесь, что регионы принадлежат одной карте и включены. Разные карты изолированы.
  2. Проверьте реальные навигационные границы после трансформа и запекания, а не только видимые модели.
  3. Проверьте пересечение слоёв региона и маски запроса.
  4. Проверьте, разрешены ли дополнительные соединения у карты (MapSetUseEdgeConnections) и у регионов (RegionSetUseEdgeConnections).
  5. Настройте MapSetEdgeConnectionMargin в единицах своей карты и дождитесь публикации изменений.
  6. Выполните новый запрос в обе стороны и сравните конечные точки с целями.

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

Конкретная проверка допуска 2D

В выполненном примере один прямоугольник занимает x=0–10, второй — x=12,5–22,5 при одинаковом диапазоне y=0–10. Разрыв равен 2,5 единицы.

  • При допуске 0,1 полного пути к цели во втором регионе нет.
  • При допуске 3 параллельные границы соединяются; RegionGetConnectionsCount первого региона становится больше нуля.
  • Отключение дополнительных соединений на карте или втором регионе снова разрывает маршрут.

Это проверка одной конфигурации параллельных границ, а не гарантия соединения любых рёбер в пределах расстояния. Частичные наложения, пересечения и плохая топология требуют исправления навигационной геометрии.

Почему маленький зазор иногда соединяется без margin

Для объединения используются ключи вершин в сетке карты, вычисляемые из координат и размера ячейки. Поэтому описание «координаты обязаны совпасть как float» слишком грубое.

В отдельной проверке при ячейке 1 границы x=10 и x=10,5 объединились даже при отключённых дополнительных соединениях и margin=0,1. Это свойство конкретной сетки и геометрии: не используйте небольшой видимый зазор как надёжный запрет навигационного перехода. Для запрета нужны корректная топология, слои или отдельные карты.

Размер ячейки запекания и сетка объединения карты связаны с точностью, но это разные этапы. Не меняйте их вслепую ради одного шва: сравните итоговые границы и маршрут после изменения.

Что считать успешным результатом

Новый путь должен соединять нужные участки, а не только содержать точки. Проверьте оба конца и возможность физического движения. Дополнительная навигационная связь через зазор не добавляет туда пол или коллайдер.

Записывайте сохранённые параметры карты вместе с воспроизводимой геометрией. В этом наборе проверены gap/margin, переключатели соединений, число связей и пример с зазором меньше ячейки только в 2D. Соединения 3D, сложные перекрытия, физическая проходимость и стоимость перестроения не измерены.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.