Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Підключення навігаційних сіток

Різні навігаційні сіті автоматично об’єднуються NavigationServer, коли принаймні дві позиції вершин одного ребра точно перекриваються.

Щоб підключитися на довільній відстані, перегляньте Використання навігаційних посилань.

../../_images/navigation_vertex_merge.png

Те саме стосується кількох ресурсів NavigationPolygon. Поки точки контуру точно перекриваються, NavigationServer об’єднає їх. Для підключення контури NavigationPolygon мають бути з різних ресурсів NavigationPolygon.

Контури, що перекриваються або перетинаються на одному NavigationPolygon, призведуть до помилки створення навігаційної сітки. Перекривання або перетинання контурів з різних NavigationPolygons часто не вдається створити з’єднання країв області навігації на NavigationServer, і цього слід уникати.

../../_images/navigation_vertex_merge2.png

Попередження

Точно означає точно для злиття позиції вершини. Невеликі помилки з плаваючою точкою, які досить регулярно трапляються з імпортованими сітками, перешкоджатимуть успішному злиттю вершин.

Альтернативно, навігаційні сітки не об’єднуються, але все одно вважаються з’єднаними NavigationServer, коли їхні краї майже паралельні та знаходяться на відстані один від одного. Відстань підключення визначається edge_connection_margin для кожної карти навігації. У багатьох випадках краї навігаційної сітки не можуть належним чином з’єднатися, коли вони частково перекриваються. Краще уникайте будь-якого накладання навігаційної сітки для узгодженої поведінки злиття.

../../_images/navigation_edge_connection.png

Якщо налагодження навігації ввімкнено та NavigationServer активний, встановлені з’єднання навігаційної сітки візуалізуються. Перегляньте Інструменти налагодження навігації для отримання додаткової інформації про параметри налагодження навігації.

Стандартний 2D edge_connection_margin можна змінити в ProjectSettings у розділі navigation/2d/default_edge_connection_margin.

Стандартний 3D edge_connection_margin можна змінити в ProjectSettings у розділі navigation/3d/default_edge_connection_margin.

Значення запасу крайового з’єднання будь-якої карти навігації також можна змінити під час виконання за допомогою API NavigationServer.

extends Node2D

func _ready() -> void:
    # 2D margins are designed to work with 2D "pixel" values.
    var default_map_rid: RID = get_world_2d().get_navigation_map()
    NavigationServer2D.map_set_edge_connection_margin(default_map_rid, 50.0)

Примітка

Зміна краю з’єднання призведе до повного оновлення всіх з’єднань навігаційної сітки на NavigationServer.