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...
NavigationPathQueryParameters2D
Экспериментальное: This class may be changed or removed in future versions.
Наследует: RefCounted < Object
Предоставляет параметры для запросов пути 2D-навигации.
Описание
Изменяя различные свойства этого объекта, такие как начальная и целевая позиция, вы можете настроить запросы пути к NavigationServer2D.
Обучающие материалы
Свойства
|
||
|
||
|
||
BitField[PathMetadataFlags] |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Перечисления
enum PathfindingAlgorithm: 🔗
PathfindingAlgorithm PATHFINDING_ALGORITHM_ASTAR = 0
Запрос пути использует алгоритм поиска пути A* по умолчанию.
enum PathPostProcessing: 🔗
PathPostProcessing PATH_POSTPROCESSING_CORRIDORFUNNEL = 0
Применяет алгоритм funnel к сырому коридору пути, найденному алгоритмом поиска пути. Это даст кратчайший возможный путь внутри коридора. Данная постобработка сильно зависит от структуры полигонов навигационной сетки и созданного коридора. Особенно в тайловых или сеточных разбиениях могут возникать искусственные углы при диагональном перемещении из-за неровного коридора пути, обусловленного формами ячеек.
PathPostProcessing PATH_POSTPROCESSING_EDGECENTERED = 1
Центрирует каждую позицию пути в середине пройденного края полигона навигационной сетки. Это создает лучшие пути для макетов на основе тайлов или сетки, которые ограничивают движение центром ячеек.
PathPostProcessing PATH_POSTPROCESSING_NONE = 2
Не применяет постобработку и возвращает необработанный коридор пути, найденный алгоритмом поиска пути.
flags PathMetadataFlags: 🔗
PathMetadataFlags PATH_METADATA_INCLUDE_NONE = 0
Не включайте никаких дополнительных метаданных о возвращаемом пути.
PathMetadataFlags PATH_METADATA_INCLUDE_TYPES = 1
Укажите тип навигационного примитива (регион или ссылка), через который проходит каждая точка пути.
PathMetadataFlags PATH_METADATA_INCLUDE_RIDS = 2
Включите RID регионов и ссылок, через которые проходит каждая точка пути.
PathMetadataFlags PATH_METADATA_INCLUDE_OWNERS = 4
Включите ObjectID Object, которые управляют областями и связями, через которые проходит каждая точка пути.
PathMetadataFlags PATH_METADATA_INCLUDE_ALL = 7
Включите все доступные метаданные о возвращаемом пути.
Описания свойств
Array[RID] excluded_regions = [] 🔗
Список RID регионов, которые будут исключены из запроса пути. Используйте NavigationRegion2D.get_rid(), чтобы получить RID, связанный с узлом NavigationRegion2D.
Примечание: Возвращаемый массив копируется, и любые изменения в нем не обновят исходное значение свойства. Чтобы обновить значение, вам необходимо изменить возвращаемый массив, а затем снова задать его для свойства.
Array[RID] included_regions = [] 🔗
Список RID регионов, которые будут включены в запрос пути. Используйте NavigationRegion2D.get_rid(), чтобы получить RID, связанный с узлом NavigationRegion2D. Если оставить пустым, будут включены все регионы. Если регион окажется и включенным, и исключенным одновременно, он будет исключен.
Примечание: Возвращаемый массив копируется, и любые изменения в нем не обновят исходное значение свойства. Чтобы обновить значение, вам необходимо изменить возвращаемый массив, а затем снова задать его для свойства.
Навигационная карта RID, используемая в запросе пути.
BitField[PathMetadataFlags] metadata_flags = 7 🔗
void set_metadata_flags(value: BitField[PathMetadataFlags])
BitField[PathMetadataFlags] get_metadata_flags()
Дополнительная информация для включения в навигационный путь.
Слои навигации, которые будет использовать запрос (в виде битовой маски).
PathPostProcessing path_postprocessing = 0 🔗
void set_path_postprocessing(value: PathPostProcessing)
PathPostProcessing get_path_postprocessing()
Постобработка пути, примененная к необработанному коридору пути, найденному pathfinding_algorithm.
float path_return_max_length = 0.0 🔗
Максимально допустимая длина возвращаемого пути в мировых единицах. При превышении этой длины путь будет обрезан. Значение 0 или ниже считается отключенным.
float path_return_max_radius = 0.0 🔗
Максимально допустимый радиус возвращаемого пути от начала пути (в мировых единицах). Путь будет обрезан при превышении этого радиуса. Значение 0 или ниже считается отключенным.
Примечание: При этом будет выполнена операция обрезания пути по окружности, при этом первая точка пути будет соответствовать центру окружности.
float path_search_max_distance = 0.0 🔗
Максимальное расстояние, на которое может отдалиться искомый полигон от начального полигона, прежде чем поиск пути отменит поиск пути к целевому полигону (возможно, недостижимому или очень удалённому). В этом случае поиск пути сбрасывается и строит путь от начального полигона до полигона, который был найден ближайшим к целевой позиции. Значение 0 или ниже считается неограниченным. В случае неограниченного значения поиск пути будет искать все полигоны, соединённые с начальным полигоном, пока не будет найден целевой полигон или пока не будут исчерпаны все доступные варианты поиска полигонов.
int path_search_max_polygons = 4096 🔗
Максимальное количество полигонов, которые будут просмотрены до того, как поиск пути отменит поиск пути к целевому полигону (возможно, недостижимому или очень удалённому). В этом случае поиск пути сбрасывается и строит путь от начального полигона до полигона, который был найден ближайшим к целевой позиции. Значение 0 или меньше считается неограниченным. В случае неограниченного поиска пути поиск пути будет искать все полигоны, соединённые с начальным полигоном, пока не будет найден целевой полигон или пока не будут исчерпаны все доступные варианты поиска полигонов.
PathfindingAlgorithm pathfinding_algorithm = 0 🔗
void set_pathfinding_algorithm(value: PathfindingAlgorithm)
PathfindingAlgorithm get_pathfinding_algorithm()
Алгоритм поиска пути, используемый в запросе пути.
float simplify_epsilon = 0.0 🔗
Величина упрощения пути в мировых единицах.
Если true, будет возвращена упрощенная версия пути с удаленными менее критическими точками пути. Степень упрощения контролируется simplify_epsilon. Упрощение использует вариант алгоритма Ramer-Douglas-Peucker для прореживания точек кривой.
Упрощение пути может быть полезно для смягчения различных проблем следования по пути, которые могут возникнуть с определенными типами агентов и поведением сценария. Например, «рулевое управление» или избегание в «открытых полях».
Vector2 start_position = Vector2(0, 0) 🔗
Начальная позиция поиска пути в глобальных координатах.
Vector2 target_position = Vector2(0, 0) 🔗
Положение цели поиска пути в глобальных координатах.