NavigationPathQueryParameters3D
Экспериментальное: This class may be changed or removed in future versions.
Наследует: RefCounted < Object
Предоставляет параметры для запросов пути 3D-навигации.
Описание
Изменяя различные свойства этого объекта, такие как начальная и конечная позиция, вы можете настроить запросы пути к NavigationServer3D.
Обучающие материалы
Свойства
|
||
|
||
|
||
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 регионов, которые будут исключены из запроса пути. Используйте NavigationRegion3D.get_rid(), чтобы получить RID, связанный с узлом NavigationRegion3D.
Примечание: Возвращаемый массив копируется, и любые изменения в нем не обновят исходное значение свойства. Чтобы обновить значение, вам нужно изменить возвращаемый массив, а затем снова задать его для свойства.
Array[RID] included_regions = [] 🔗
Список RID регионов, которые будут включены в запрос пути. Используйте NavigationRegion3D.get_rid(), чтобы получить RID, связанный с узлом NavigationRegion3D. Если оставить пустым, будут включены все регионы. Если регион окажется и включенным, и исключенным одновременно, он будет исключен.
Примечание: Возвращаемый массив копируется, и любые изменения в нем не обновят исходное значение свойства. Чтобы обновить значение, вам необходимо изменить возвращаемый массив, а затем снова задать его для свойства.
Навигационная карта 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 для прореживания точек кривой.
Упрощение пути может быть полезно для смягчения различных проблем следования по пути, которые могут возникнуть с определенными типами агентов и поведением сценария. Например, «рулевое управление» или избегание в «открытых полях».
Vector3 start_position = Vector3(0, 0, 0) 🔗
Начальная позиция поиска пути в глобальных координатах.
Vector3 target_position = Vector3(0, 0, 0) 🔗
Положение цели поиска пути в глобальных координатах.