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...
NavigationRegion2D
Экспериментальное: This class may be changed or removed in future versions.
Наследует: Node2D < CanvasItem < Node < Object
Проходимая 2D-область, которую NavigationAgent2D может использовать для поиска пути.
Описание
Проходимая 2D-область на основе NavigationPolygon, которую NavigationAgent2Ds может использовать для поиска пути.
Два региона могут быть соединены друг с другом, если они имеют общее ребро. Вы можете установить минимальное расстояние между двумя вершинами, необходимое для соединения двух ребер, с помощью NavigationServer2D.map_set_edge_connection_margin().
Примечание: Перекрытие навигационных полигонов двух регионов недостаточно для соединения двух регионов. Они должны иметь общее ребро.
Стоимость поиска пути при входе в регион из другого региона можно контролировать с помощью значения enter_cost.
Примечание: Это значение не добавляется к стоимости пути, если начальная позиция уже находится внутри этого региона.
Стоимость поиска пути при перемещении на расстояние внутри этого региона можно контролировать с помощью множителя travel_cost.
Примечание: Этот узел кэширует изменения своих свойств, поэтому если вы вносите изменения в базовый регион RID в NavigationServer2D, они не будут отражены в свойствах этого узла.
Обучающие материалы
Свойства
|
||
|
||
|
||
|
||
|
Методы
void |
bake_navigation_polygon(on_thread: bool = true) |
get_bounds() const |
|
get_navigation_layer_value(layer_number: int) const |
|
get_navigation_map() const |
|
get_region_rid() const |
|
get_rid() const |
|
is_baking() const |
|
void |
set_navigation_layer_value(layer_number: int, value: bool) |
void |
set_navigation_map(navigation_map: RID) |
Сигналы
bake_finished() 🔗
Выдается после завершения операции запекания навигационного полигона.
navigation_polygon_changed() 🔗
Выдается при замене используемого навигационного полигона или при внесении изменений во внутренние компоненты текущего навигационного полигона.
Описания свойств
Определяет, включен или отключен NavigationRegion2D.
Когда поиск пути входит в навигационную сетку этого региона из навигационной сетки другого региона, значение enter_cost добавляется к расстоянию пути для определения кратчайшего пути.
Битовое поле, определяющее все навигационные слои, к которым принадлежит регион. Эти навигационные слои можно проверить при запросе пути с помощью NavigationServer2D.map_get_path().
NavigationPolygon navigation_polygon 🔗
void set_navigation_polygon(value: NavigationPolygon)
NavigationPolygon get_navigation_polygon()
Ресурс NavigationPolygon для использования.
При поиске пути внутри навигационной сетки этого региона пройденные расстояния умножаются на travel_cost для определения кратчайшего пути.
bool use_edge_connections = true 🔗
Если этот параметр включен, навигационная область будет использовать краевые соединения для соединения с другими навигационными областями, находящимися в непосредственной близости от границы краевых соединений навигационной карты.
Описания метода
void bake_navigation_polygon(on_thread: bool = true) 🔗
Запекает NavigationPolygon. Если on_thread установлен в true (по умолчанию), запекание выполняется в отдельном потоке.
Возвращает выровненный по осям прямоугольник для преобразованной навигационной сетки региона.
bool get_navigation_layer_value(layer_number: int) const 🔗
Возвращает, включен ли указанный слой битовой маски navigation_layers, учитывая layer_number от 1 до 32.
RID get_navigation_map() const 🔗
Возвращает текущую навигационную карту RID, используемую в этом регионе.
Устарело: Use get_rid() instead.
Возвращает RID этого региона на NavigationServer2D.
Возвращает RID этого региона на NavigationServer2D. В сочетании с NavigationServer2D.map_get_closest_point_owner() может использоваться для определения NavigationRegion2D, ближайшего к точке на объединенной навигационной карте.
Возвращает true, когда NavigationPolygon запекается в фоновом потоке.
void set_navigation_layer_value(layer_number: int, value: bool) 🔗
На основе value включает или отключает указанный слой в битовой маске navigation_layers, учитывая layer_number от 1 до 32.
void set_navigation_map(navigation_map: RID) 🔗
Устанавливает RID навигационной карты, которую должен использовать этот регион. По умолчанию регион автоматически присоединится к навигационной карте по умолчанию World2D, поэтому эта функция требуется только для переопределения карты по умолчанию.