reckfellENGINE

Регионы навигации: ресурс, положение и отключение

Разместить навигационную поверхность и правильно обновить маршруты.

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

NavigationRegion2D размещает ресурс NavigationPolygon на карте; NavigationRegion3D использует NavigationMesh. Само добавление Entity региона не создаёт проходимую поверхность: ресурс должен содержать готовые полигоны. Визуальная модель пола и физический коллайдер сами по себе не заменяют эту геометрию.

Подготовить регион

  1. Добавьте регион нужной размерности в уровень.
  2. Назначьте NavigationPolygon или NavigationMesh с готовыми данными. Для построения из исходной геометрии используйте запекание навигации.
  3. Проверьте карту региона через GetNavigationMap(), слои и Enabled.
  4. После публикации данных запросите путь внутри поверхности; затем проверьте переход к соседнему региону.

При прямой работе с сервером порядок тот же: RegionCreate, назначение ресурса через RegionSetNavigationPolygon или RegionSetNavigationMesh, затем RegionSetMap. Созданные таким способом RID освобождает ваш код. У обычной Entity региона собственным RID управляет сама Entity; получить его можно через GetRid(), но освобождать отдельно нельзя.

Карта, положение и слои

Регион относится к одной карте. Для переноса и явного владения процедурными регионами есть законченный помощник карты.

Трансформ региона размещает его навигационные вершины в пространстве карты. В выполненной проверке перенос на (10, 0) сместил границы и разорвал соединение; возврат единичного трансформа восстановил маршрут. Масштаб по X=2 увеличил ширину серверной геометрии вдвое. Поэтому утверждение, что масштаб всегда игнорируется, для проверенного 2D-сервера неверно.

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

NavigationLayers — маска доступности региона для запроса, а не слои физики. Правила масок и нумерации приведены в навигационных слоях.

Отключение и старые маршруты

RegionSetEnabled(region, false) или Enabled = false исключает регион из новых поисков после обновления карты. Уже полученный массив пути остаётся прежним. В проверке старый массив по-прежнему заканчивался в отключённом регионе, а новый поиск полного пути уже не находил.

После отключения двери, платформы или участка уровня решите, какие персонажи должны пересчитать маршрут. Само изменение региона не останавливает уже начатое движение и не переписывает сохранённые массивы точек.

Диагностика

  • Регион есть, пути нет: проверьте число полигонов ресурса, карту, слои и публикацию данных.
  • Внутри региона путь есть, между регионами нет: проверьте соединение границ.
  • После отключения персонаж идёт по старому маршруту: запросите новый путь и обработайте недостижимость.
  • Геометрия сместилась: различайте локальные вершины ресурса и трансформ региона.

Проверены серверные изменения 2D: отключение/включение, сохранение старого массива, перенос, масштаб и восстановление соединения. 3D проверен с запечённым ресурсом. Размещение мышью, физика платформ и масштаб 3D не проверены этим набором.

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

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

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

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