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.
Checking the stable version of the documentation...
Підключення навігаційних сіток
Різні навігаційні сіті автоматично об’єднуються NavigationServer, коли принаймні дві позиції вершин одного ребра точно перекриваються.
Щоб підключитися на довільній відстані, перегляньте Використання навігаційних посилань.
Те саме стосується кількох ресурсів NavigationPolygon. Поки точки контуру точно перекриваються, NavigationServer об’єднає їх. Для підключення контури NavigationPolygon мають бути з різних ресурсів NavigationPolygon.
Контури, що перекриваються або перетинаються на одному NavigationPolygon, призведуть до помилки створення навігаційної сітки. Перекривання або перетинання контурів з різних NavigationPolygons часто не вдається створити з’єднання країв області навігації на NavigationServer, і цього слід уникати.
Попередження
Точно означає точно для злиття позиції вершини. Невеликі помилки з плаваючою точкою, які досить регулярно трапляються з імпортованими сітками, перешкоджатимуть успішному злиттю вершин.
Альтернативно, навігаційні сітки не об’єднуються, але все одно вважаються з’єднаними NavigationServer, коли їхні краї майже паралельні та знаходяться на відстані один від одного. Відстань підключення визначається edge_connection_margin для кожної карти навігації. У багатьох випадках краї навігаційної сітки не можуть належним чином з’єднатися, коли вони частково перекриваються. Краще уникайте будь-якого накладання навігаційної сітки для узгодженої поведінки злиття.
Якщо налагодження навігації ввімкнено та 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)
using Godot;
public partial class MyNode2D : Node2D
{
public override void _Ready()
{
// 2D margins are designed to work with 2D "pixel" values.
Rid defaultMapRid = GetWorld2D().NavigationMap;
NavigationServer2D.MapSetEdgeConnectionMargin(defaultMapRid, 50.0f);
}
}
extends Node3D
func _ready() -> void:
# 3D margins are designed to work with 3D world unit values.
var default_map_rid: RID = get_world_3d().get_navigation_map()
NavigationServer3D.map_set_edge_connection_margin(default_map_rid, 0.5)
using Godot;
public partial class MyNode3D : Node3D
{
public override void _Ready()
{
// 3D margins are designed to work with 3D world unit values.
Rid defaultMapRid = GetWorld3D().NavigationMap;
NavigationServer3D.MapSetEdgeConnectionMargin(defaultMapRid, 0.5f);
}
}
Примітка
Зміна краю з’єднання призведе до повного оновлення всіх з’єднань навігаційної сітки на NavigationServer.