:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/4.4/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/4.4/doc/classes/NavigationServer3D.xml. .. _class_NavigationServer3D: NavigationServer3D ================== **实验性:** This class may be changed or removed in future versions. **继承:** :ref:`Object` 用于访问低阶 3D 导航的服务器接口。 .. rst-class:: classref-introduction-group 描述 ---- NavigationServer3D 是处理导航地图、区块、代理的服务器。它不处理来自 :ref:`AStar3D` 的 A\* 导航。 地图分为多个区块,这些区块由导航网格组成。它们共同定义了 3D 世界中的可导航区域。 \ **注意:**\ 大多数 **NavigationServer3D** 的更改都是在下一个物理帧进行的,不会立即生效。包括所有对地图、区块、代理的更改,无论是通过场景树中导航相关的节点作出的更改,还是通过脚本作出的更改。 两个区块必须共享一条相似的边才能相连。如果一条边的两个顶点与另一条边上相应顶点的距离都小于 ``edge_connection_margin``\ ,那么就会认为这两条边是相连的。 可以使用 :ref:`region_set_navigation_layers()` 为区块分配导航层,使用 :ref:`map_get_path()` 请求路径时会对导航层进行检查。可用于针对某些对象允许或禁止特定的区域。 使用碰撞躲避系统就需要使用代理。你可以为代理设置目标速度,然后服务器就会发出回调,提供修改后的速度。 \ **注意:**\ 碰撞躲避系统会忽略区块。直接使用修改后的速度可能会将代理移动到可达区域之外。这是碰撞躲避系统的缺陷,更复杂的场合可能需要使用物理引擎。 服务器会对所有调用进行跟踪,并在同步阶段执行。这意味着你可以放心地从任何线程请求对地图作出任何修改。 .. rst-class:: classref-introduction-group 教程 ---- - :doc:`使用 NavigationServer <../tutorials/navigation/navigation_using_navigationservers>` - `3D 导航演示 `__ .. rst-class:: classref-reftable-group 方法 ---- .. table:: :widths: auto +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`agent_create`\ (\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`agent_get_avoidance_enabled`\ (\ agent\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`agent_get_avoidance_layers`\ (\ agent\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`agent_get_avoidance_mask`\ (\ agent\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`agent_get_avoidance_priority`\ (\ agent\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`agent_get_height`\ (\ agent\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`agent_get_map`\ (\ agent\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`agent_get_max_neighbors`\ (\ agent\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`agent_get_max_speed`\ (\ agent\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`agent_get_neighbor_distance`\ (\ agent\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`agent_get_paused`\ (\ agent\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`agent_get_position`\ (\ agent\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`agent_get_radius`\ (\ agent\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`agent_get_time_horizon_agents`\ (\ agent\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`agent_get_time_horizon_obstacles`\ (\ agent\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`agent_get_use_3d_avoidance`\ (\ agent\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`agent_get_velocity`\ (\ agent\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`agent_has_avoidance_callback`\ (\ agent\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`agent_is_map_changed`\ (\ agent\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`agent_set_avoidance_callback`\ (\ agent\: :ref:`RID`, callback\: :ref:`Callable`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`agent_set_avoidance_enabled`\ (\ agent\: :ref:`RID`, enabled\: :ref:`bool`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`agent_set_avoidance_layers`\ (\ agent\: :ref:`RID`, layers\: :ref:`int`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`agent_set_avoidance_mask`\ (\ agent\: :ref:`RID`, mask\: :ref:`int`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`agent_set_avoidance_priority`\ (\ agent\: :ref:`RID`, priority\: :ref:`float`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`agent_set_height`\ (\ agent\: :ref:`RID`, height\: :ref:`float`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`agent_set_map`\ (\ agent\: :ref:`RID`, map\: :ref:`RID`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`agent_set_max_neighbors`\ (\ agent\: :ref:`RID`, count\: :ref:`int`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`agent_set_max_speed`\ (\ agent\: :ref:`RID`, max_speed\: :ref:`float`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`agent_set_neighbor_distance`\ (\ agent\: :ref:`RID`, distance\: :ref:`float`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`agent_set_paused`\ (\ agent\: :ref:`RID`, paused\: :ref:`bool`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`agent_set_position`\ (\ agent\: :ref:`RID`, position\: :ref:`Vector3`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`agent_set_radius`\ (\ agent\: :ref:`RID`, radius\: :ref:`float`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`agent_set_time_horizon_agents`\ (\ agent\: :ref:`RID`, time_horizon\: :ref:`float`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`agent_set_time_horizon_obstacles`\ (\ agent\: :ref:`RID`, time_horizon\: :ref:`float`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`agent_set_use_3d_avoidance`\ (\ agent\: :ref:`RID`, enabled\: :ref:`bool`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`agent_set_velocity`\ (\ agent\: :ref:`RID`, velocity\: :ref:`Vector3`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`agent_set_velocity_forced`\ (\ agent\: :ref:`RID`, velocity\: :ref:`Vector3`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`bake_from_source_geometry_data`\ (\ navigation_mesh\: :ref:`NavigationMesh`, source_geometry_data\: :ref:`NavigationMeshSourceGeometryData3D`, callback\: :ref:`Callable` = Callable()\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`bake_from_source_geometry_data_async`\ (\ navigation_mesh\: :ref:`NavigationMesh`, source_geometry_data\: :ref:`NavigationMeshSourceGeometryData3D`, callback\: :ref:`Callable` = Callable()\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`free_rid`\ (\ rid\: :ref:`RID`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`get_debug_enabled`\ (\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array`\[:ref:`RID`\] | :ref:`get_maps`\ (\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_process_info`\ (\ process_info\: :ref:`ProcessInfo`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_baking_navigation_mesh`\ (\ navigation_mesh\: :ref:`NavigationMesh`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`link_create`\ (\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`link_get_enabled`\ (\ link\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`link_get_end_position`\ (\ link\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`link_get_enter_cost`\ (\ link\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`link_get_map`\ (\ link\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`link_get_navigation_layers`\ (\ link\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`link_get_owner_id`\ (\ link\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`link_get_start_position`\ (\ link\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`link_get_travel_cost`\ (\ link\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`link_is_bidirectional`\ (\ link\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`link_set_bidirectional`\ (\ link\: :ref:`RID`, bidirectional\: :ref:`bool`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`link_set_enabled`\ (\ link\: :ref:`RID`, enabled\: :ref:`bool`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`link_set_end_position`\ (\ link\: :ref:`RID`, position\: :ref:`Vector3`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`link_set_enter_cost`\ (\ link\: :ref:`RID`, enter_cost\: :ref:`float`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`link_set_map`\ (\ link\: :ref:`RID`, map\: :ref:`RID`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`link_set_navigation_layers`\ (\ link\: :ref:`RID`, navigation_layers\: :ref:`int`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`link_set_owner_id`\ (\ link\: :ref:`RID`, owner_id\: :ref:`int`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`link_set_start_position`\ (\ link\: :ref:`RID`, position\: :ref:`Vector3`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`link_set_travel_cost`\ (\ link\: :ref:`RID`, travel_cost\: :ref:`float`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`map_create`\ (\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`map_force_update`\ (\ map\: :ref:`RID`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array`\[:ref:`RID`\] | :ref:`map_get_agents`\ (\ map\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`map_get_cell_height`\ (\ map\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`map_get_cell_size`\ (\ map\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`map_get_closest_point`\ (\ map\: :ref:`RID`, to_point\: :ref:`Vector3`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`map_get_closest_point_normal`\ (\ map\: :ref:`RID`, to_point\: :ref:`Vector3`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`map_get_closest_point_owner`\ (\ map\: :ref:`RID`, to_point\: :ref:`Vector3`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`map_get_closest_point_to_segment`\ (\ map\: :ref:`RID`, start\: :ref:`Vector3`, end\: :ref:`Vector3`, use_collision\: :ref:`bool` = false\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`map_get_edge_connection_margin`\ (\ map\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`map_get_iteration_id`\ (\ map\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`map_get_link_connection_radius`\ (\ map\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array`\[:ref:`RID`\] | :ref:`map_get_links`\ (\ map\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`map_get_merge_rasterizer_cell_scale`\ (\ map\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array`\[:ref:`RID`\] | :ref:`map_get_obstacles`\ (\ map\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedVector3Array` | :ref:`map_get_path`\ (\ map\: :ref:`RID`, origin\: :ref:`Vector3`, destination\: :ref:`Vector3`, optimize\: :ref:`bool`, navigation_layers\: :ref:`int` = 1\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`map_get_random_point`\ (\ map\: :ref:`RID`, navigation_layers\: :ref:`int`, uniformly\: :ref:`bool`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array`\[:ref:`RID`\] | :ref:`map_get_regions`\ (\ map\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`map_get_up`\ (\ map\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`map_get_use_async_iterations`\ (\ map\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`map_get_use_edge_connections`\ (\ map\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`map_is_active`\ (\ map\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`map_set_active`\ (\ map\: :ref:`RID`, active\: :ref:`bool`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`map_set_cell_height`\ (\ map\: :ref:`RID`, cell_height\: :ref:`float`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`map_set_cell_size`\ (\ map\: :ref:`RID`, cell_size\: :ref:`float`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`map_set_edge_connection_margin`\ (\ map\: :ref:`RID`, margin\: :ref:`float`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`map_set_link_connection_radius`\ (\ map\: :ref:`RID`, radius\: :ref:`float`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`map_set_merge_rasterizer_cell_scale`\ (\ map\: :ref:`RID`, scale\: :ref:`float`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`map_set_up`\ (\ map\: :ref:`RID`, up\: :ref:`Vector3`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`map_set_use_async_iterations`\ (\ map\: :ref:`RID`, enabled\: :ref:`bool`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`map_set_use_edge_connections`\ (\ map\: :ref:`RID`, enabled\: :ref:`bool`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`obstacle_create`\ (\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`obstacle_get_avoidance_enabled`\ (\ obstacle\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`obstacle_get_avoidance_layers`\ (\ obstacle\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`obstacle_get_height`\ (\ obstacle\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`obstacle_get_map`\ (\ obstacle\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`obstacle_get_paused`\ (\ obstacle\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`obstacle_get_position`\ (\ obstacle\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`obstacle_get_radius`\ (\ obstacle\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`obstacle_get_use_3d_avoidance`\ (\ obstacle\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`obstacle_get_velocity`\ (\ obstacle\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedVector3Array` | :ref:`obstacle_get_vertices`\ (\ obstacle\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`obstacle_set_avoidance_enabled`\ (\ obstacle\: :ref:`RID`, enabled\: :ref:`bool`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`obstacle_set_avoidance_layers`\ (\ obstacle\: :ref:`RID`, layers\: :ref:`int`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`obstacle_set_height`\ (\ obstacle\: :ref:`RID`, height\: :ref:`float`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`obstacle_set_map`\ (\ obstacle\: :ref:`RID`, map\: :ref:`RID`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`obstacle_set_paused`\ (\ obstacle\: :ref:`RID`, paused\: :ref:`bool`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`obstacle_set_position`\ (\ obstacle\: :ref:`RID`, position\: :ref:`Vector3`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`obstacle_set_radius`\ (\ obstacle\: :ref:`RID`, radius\: :ref:`float`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`obstacle_set_use_3d_avoidance`\ (\ obstacle\: :ref:`RID`, enabled\: :ref:`bool`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`obstacle_set_velocity`\ (\ obstacle\: :ref:`RID`, velocity\: :ref:`Vector3`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`obstacle_set_vertices`\ (\ obstacle\: :ref:`RID`, vertices\: :ref:`PackedVector3Array`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`parse_source_geometry_data`\ (\ navigation_mesh\: :ref:`NavigationMesh`, source_geometry_data\: :ref:`NavigationMeshSourceGeometryData3D`, root_node\: :ref:`Node`, callback\: :ref:`Callable` = Callable()\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`query_path`\ (\ parameters\: :ref:`NavigationPathQueryParameters3D`, result\: :ref:`NavigationPathQueryResult3D`, callback\: :ref:`Callable` = Callable()\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`region_bake_navigation_mesh`\ (\ navigation_mesh\: :ref:`NavigationMesh`, root_node\: :ref:`Node`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`region_create`\ (\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`AABB` | :ref:`region_get_bounds`\ (\ region\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`region_get_closest_point`\ (\ region\: :ref:`RID`, to_point\: :ref:`Vector3`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`region_get_closest_point_normal`\ (\ region\: :ref:`RID`, to_point\: :ref:`Vector3`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`region_get_closest_point_to_segment`\ (\ region\: :ref:`RID`, start\: :ref:`Vector3`, end\: :ref:`Vector3`, use_collision\: :ref:`bool` = false\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`region_get_connection_pathway_end`\ (\ region\: :ref:`RID`, connection\: :ref:`int`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`region_get_connection_pathway_start`\ (\ region\: :ref:`RID`, connection\: :ref:`int`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`region_get_connections_count`\ (\ region\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`region_get_enabled`\ (\ region\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`region_get_enter_cost`\ (\ region\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`region_get_map`\ (\ region\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`region_get_navigation_layers`\ (\ region\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`region_get_owner_id`\ (\ region\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`region_get_random_point`\ (\ region\: :ref:`RID`, navigation_layers\: :ref:`int`, uniformly\: :ref:`bool`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Transform3D` | :ref:`region_get_transform`\ (\ region\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`region_get_travel_cost`\ (\ region\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`region_get_use_edge_connections`\ (\ region\: :ref:`RID`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`region_owns_point`\ (\ region\: :ref:`RID`, point\: :ref:`Vector3`\ ) |const| | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`region_set_enabled`\ (\ region\: :ref:`RID`, enabled\: :ref:`bool`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`region_set_enter_cost`\ (\ region\: :ref:`RID`, enter_cost\: :ref:`float`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`region_set_map`\ (\ region\: :ref:`RID`, map\: :ref:`RID`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`region_set_navigation_layers`\ (\ region\: :ref:`RID`, navigation_layers\: :ref:`int`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`region_set_navigation_mesh`\ (\ region\: :ref:`RID`, navigation_mesh\: :ref:`NavigationMesh`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`region_set_owner_id`\ (\ region\: :ref:`RID`, owner_id\: :ref:`int`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`region_set_transform`\ (\ region\: :ref:`RID`, transform\: :ref:`Transform3D`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`region_set_travel_cost`\ (\ region\: :ref:`RID`, travel_cost\: :ref:`float`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`region_set_use_edge_connections`\ (\ region\: :ref:`RID`, enabled\: :ref:`bool`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_active`\ (\ active\: :ref:`bool`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_debug_enabled`\ (\ enabled\: :ref:`bool`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedVector3Array` | :ref:`simplify_path`\ (\ path\: :ref:`PackedVector3Array`, epsilon\: :ref:`float`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`source_geometry_parser_create`\ (\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`source_geometry_parser_set_callback`\ (\ parser\: :ref:`RID`, callback\: :ref:`Callable`\ ) | +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group 信号 ---- .. _class_NavigationServer3D_signal_avoidance_debug_changed: .. rst-class:: classref-signal **avoidance_debug_changed**\ (\ ) :ref:`🔗` 当避障调试设置更改时发出。仅在调试版本中可用。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_signal_map_changed: .. rst-class:: classref-signal **map_changed**\ (\ map\: :ref:`RID`\ ) :ref:`🔗` 当导航地图更新时、地区移动或被修改时发出。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_signal_navigation_debug_changed: .. rst-class:: classref-signal **navigation_debug_changed**\ (\ ) :ref:`🔗` 当导航调试设置更改时发出。仅在调试版本中可用。 .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group 枚举 ---- .. _enum_NavigationServer3D_ProcessInfo: .. rst-class:: classref-enumeration enum **ProcessInfo**: :ref:`🔗` .. _class_NavigationServer3D_constant_INFO_ACTIVE_MAPS: .. rst-class:: classref-enumeration-constant :ref:`ProcessInfo` **INFO_ACTIVE_MAPS** = ``0`` 常量,用于获取活动导航地图的数量。 .. _class_NavigationServer3D_constant_INFO_REGION_COUNT: .. rst-class:: classref-enumeration-constant :ref:`ProcessInfo` **INFO_REGION_COUNT** = ``1`` 常量,用于获取活动导航地区的数量。 .. _class_NavigationServer3D_constant_INFO_AGENT_COUNT: .. rst-class:: classref-enumeration-constant :ref:`ProcessInfo` **INFO_AGENT_COUNT** = ``2`` 常量,用于获取正在进行避障的活动导航代理的数量。 .. _class_NavigationServer3D_constant_INFO_LINK_COUNT: .. rst-class:: classref-enumeration-constant :ref:`ProcessInfo` **INFO_LINK_COUNT** = ``3`` 常量,用于获取活动导航链接的数量。 .. _class_NavigationServer3D_constant_INFO_POLYGON_COUNT: .. rst-class:: classref-enumeration-constant :ref:`ProcessInfo` **INFO_POLYGON_COUNT** = ``4`` 常量,用于获取导航网格多边形的数量。 .. _class_NavigationServer3D_constant_INFO_EDGE_COUNT: .. rst-class:: classref-enumeration-constant :ref:`ProcessInfo` **INFO_EDGE_COUNT** = ``5`` 常量,用于获取导航网格多边形的边的数量。 .. _class_NavigationServer3D_constant_INFO_EDGE_MERGE_COUNT: .. rst-class:: classref-enumeration-constant :ref:`ProcessInfo` **INFO_EDGE_MERGE_COUNT** = ``6`` 常量,用于获取由于边键重叠而被合并的导航网格多边形的边的数量。 .. _class_NavigationServer3D_constant_INFO_EDGE_CONNECTION_COUNT: .. rst-class:: classref-enumeration-constant :ref:`ProcessInfo` **INFO_EDGE_CONNECTION_COUNT** = ``7`` 常量,用以获取被认为由于边接近而连接的导航网格多边形的边的数量。 .. _class_NavigationServer3D_constant_INFO_EDGE_FREE_COUNT: .. rst-class:: classref-enumeration-constant :ref:`ProcessInfo` **INFO_EDGE_FREE_COUNT** = ``8`` 常量,用于获取无法合并但仍可通过边接近或链接连接的导航网格多边形的边的数量。 .. _class_NavigationServer3D_constant_INFO_OBSTACLE_COUNT: .. rst-class:: classref-enumeration-constant :ref:`ProcessInfo` **INFO_OBSTACLE_COUNT** = ``9`` 常量,用于获取活动导航障碍物的数量。 .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group 方法说明 -------- .. _class_NavigationServer3D_method_agent_create: .. rst-class:: classref-method :ref:`RID` **agent_create**\ (\ ) :ref:`🔗` 创建代理。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_get_avoidance_enabled: .. rst-class:: classref-method :ref:`bool` **agent_get_avoidance_enabled**\ (\ agent\: :ref:`RID`\ ) |const| :ref:`🔗` 如果指定代理 ``agent`` 启用了避障,则返回 ``true``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_get_avoidance_layers: .. rst-class:: classref-method :ref:`int` **agent_get_avoidance_layers**\ (\ agent\: :ref:`RID`\ ) |const| :ref:`🔗` 返回指定 ``agent`` 的 ``avoidance_layers`` 位掩码。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_get_avoidance_mask: .. rst-class:: classref-method :ref:`int` **agent_get_avoidance_mask**\ (\ agent\: :ref:`RID`\ ) |const| :ref:`🔗` 返回指定 ``agent`` 的 ``avoidance_mask`` 位掩码。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_get_avoidance_priority: .. rst-class:: classref-method :ref:`float` **agent_get_avoidance_priority**\ (\ agent\: :ref:`RID`\ ) |const| :ref:`🔗` 返回指定 ``agent`` 的 ``avoidance_priority``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_get_height: .. rst-class:: classref-method :ref:`float` **agent_get_height**\ (\ agent\: :ref:`RID`\ ) |const| :ref:`🔗` 返回指定的 ``agent`` 的 ``height``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_get_map: .. rst-class:: classref-method :ref:`RID` **agent_get_map**\ (\ agent\: :ref:`RID`\ ) |const| :ref:`🔗` 返回请求 ``agent`` 目前分配到的导航地图 :ref:`RID`\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_get_max_neighbors: .. rst-class:: classref-method :ref:`int` **agent_get_max_neighbors**\ (\ agent\: :ref:`RID`\ ) |const| :ref:`🔗` 返回在导航中指定的 ``agent`` 考虑的其他代理的最大数量。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_get_max_speed: .. rst-class:: classref-method :ref:`float` **agent_get_max_speed**\ (\ agent\: :ref:`RID`\ ) |const| :ref:`🔗` 返回指定 ``agent`` 的最大速度。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_get_neighbor_distance: .. rst-class:: classref-method :ref:`float` **agent_get_neighbor_distance**\ (\ agent\: :ref:`RID`\ ) |const| :ref:`🔗` 返回在导航中到指定 ``agent`` 考虑的其他代理的最大距离。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_get_paused: .. rst-class:: classref-method :ref:`bool` **agent_get_paused**\ (\ agent\: :ref:`RID`\ ) |const| :ref:`🔗` 如果指定的 ``agent`` 处于暂停状态,则返回 ``true``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_get_position: .. rst-class:: classref-method :ref:`Vector3` **agent_get_position**\ (\ agent\: :ref:`RID`\ ) |const| :ref:`🔗` 返回在世界空间中指定的 ``agent`` 的位置。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_get_radius: .. rst-class:: classref-method :ref:`float` **agent_get_radius**\ (\ agent\: :ref:`RID`\ ) |const| :ref:`🔗` 返回指定 ``agent`` 的半径。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_get_time_horizon_agents: .. rst-class:: classref-method :ref:`float` **agent_get_time_horizon_agents**\ (\ agent\: :ref:`RID`\ ) |const| :ref:`🔗` 返回指定的 ``agent`` 如果持续使用由仿真过程计算出的速度移动,能够不与其他代理发生碰撞的最短时间。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_get_time_horizon_obstacles: .. rst-class:: classref-method :ref:`float` **agent_get_time_horizon_obstacles**\ (\ agent\: :ref:`RID`\ ) |const| :ref:`🔗` 返回指定的 ``agent`` 如果持续使用由仿真过程计算出的速度移动,能够不与静态障碍物发生碰撞的最短时间。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_get_use_3d_avoidance: .. rst-class:: classref-method :ref:`bool` **agent_get_use_3d_avoidance**\ (\ agent\: :ref:`RID`\ ) |const| :ref:`🔗` 如果指定代理 ``agent`` 使用 3D 空间 Vector3(x,y,z) 的避障而不是水平 2D Vector2(x,y) / Vector3(x,0.0,z) 避障,则返回 ``true``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_get_velocity: .. rst-class:: classref-method :ref:`Vector3` **agent_get_velocity**\ (\ agent\: :ref:`RID`\ ) |const| :ref:`🔗` 返回指定 ``agent`` 的速度。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_has_avoidance_callback: .. rst-class:: classref-method :ref:`bool` **agent_has_avoidance_callback**\ (\ agent\: :ref:`RID`\ ) |const| :ref:`🔗` 如果指定的 ``agent`` 有避障回调,则返回 ``true``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_is_map_changed: .. rst-class:: classref-method :ref:`bool` **agent_is_map_changed**\ (\ agent\: :ref:`RID`\ ) |const| :ref:`🔗` 如果地图在上一帧发生了变化,则返回 ``true``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_set_avoidance_callback: .. rst-class:: classref-method |void| **agent_set_avoidance_callback**\ (\ agent\: :ref:`RID`, callback\: :ref:`Callable`\ ) :ref:`🔗` 设置在 ``agent`` 的每个避障处理步骤之后调用的回调 :ref:`Callable`\ 。计算出的 ``safe_velocity`` 将在物理计算之前通过信号发送。 \ **注意:**\ 只要代理还在导航地图上且未被释放,创建的回调就会始终独立于 SceneTree 状态进行处理。要为某个代理禁用回调的发送,请再次使用一个空的 :ref:`Callable` 来调用 :ref:`agent_set_avoidance_callback()`\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_set_avoidance_enabled: .. rst-class:: classref-method |void| **agent_set_avoidance_enabled**\ (\ agent\: :ref:`RID`, enabled\: :ref:`bool`\ ) :ref:`🔗` 如果 ``enabled`` 为 ``true``\ ,则提供的 ``agent`` 会计算避障。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_set_avoidance_layers: .. rst-class:: classref-method |void| **agent_set_avoidance_layers**\ (\ agent\: :ref:`RID`, layers\: :ref:`int`\ ) :ref:`🔗` 设置该代理的 ``avoidance_layers`` 位掩码。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_set_avoidance_mask: .. rst-class:: classref-method |void| **agent_set_avoidance_mask**\ (\ agent\: :ref:`RID`, mask\: :ref:`int`\ ) :ref:`🔗` 设置该代理的 ``avoidance_mask`` 位掩码。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_set_avoidance_priority: .. rst-class:: classref-method |void| **agent_set_avoidance_priority**\ (\ agent\: :ref:`RID`, priority\: :ref:`float`\ ) :ref:`🔗` 设置该代理的 ``avoidance_priority``\ ,优先级 ``priority`` 在 0.0(最低优先级)到 1.0(最高优先级)之间。 \ ``agent`` 指定的代理不会针对 ``avoidance_mask`` 存在匹配但 ``avoidance_priority`` 更低的代理调整速度。相应地,优先级更低的代理则会对其速度进行更大的调整,从而避免与这个代理发生碰撞。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_set_height: .. rst-class:: classref-method |void| **agent_set_height**\ (\ agent\: :ref:`RID`, height\: :ref:`float`\ ) :ref:`🔗` 更新指定代理 ``agent`` 的高度 ``height``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_set_map: .. rst-class:: classref-method |void| **agent_set_map**\ (\ agent\: :ref:`RID`, map\: :ref:`RID`\ ) :ref:`🔗` 将代理放入地图中。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_set_max_neighbors: .. rst-class:: classref-method |void| **agent_set_max_neighbors**\ (\ agent\: :ref:`RID`, count\: :ref:`int`\ ) :ref:`🔗` 设置在导航中,该代理所考虑的其他代理的最大数量。这个数越大,模拟的运行时间越长。如果这个数太小,则模拟会不安全。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_set_max_speed: .. rst-class:: classref-method |void| **agent_set_max_speed**\ (\ agent\: :ref:`RID`, max_speed\: :ref:`float`\ ) :ref:`🔗` 设置该代理的最大速度。必须为正数。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_set_neighbor_distance: .. rst-class:: classref-method |void| **agent_set_neighbor_distance**\ (\ agent\: :ref:`RID`, distance\: :ref:`float`\ ) :ref:`🔗` 设置在导航中,该代理所考虑的其他代理的最大距离。这个数越大,模拟的运行时间越长。如果这个数太小,则模拟会不安全。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_set_paused: .. rst-class:: classref-method |void| **agent_set_paused**\ (\ agent\: :ref:`RID`, paused\: :ref:`bool`\ ) :ref:`🔗` 如果 ``paused`` 为 ``true``\ ,则不会对指定的 ``agent`` 进行处理,例如不会计算避障速度以及收到避障回调。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_set_position: .. rst-class:: classref-method |void| **agent_set_position**\ (\ agent\: :ref:`RID`, position\: :ref:`Vector3`\ ) :ref:`🔗` 设置该代理在世界空间中的位置。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_set_radius: .. rst-class:: classref-method |void| **agent_set_radius**\ (\ agent\: :ref:`RID`, radius\: :ref:`float`\ ) :ref:`🔗` 设置该代理的半径。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_set_time_horizon_agents: .. rst-class:: classref-method |void| **agent_set_time_horizon_agents**\ (\ agent\: :ref:`RID`, time_horizon\: :ref:`float`\ ) :ref:`🔗` 考虑其他代理的前提下,该代理的速度的最短安全时间,这个速度是通过仿真得到的。数值越大,代理响应其他代理的速度就越快,但该代理选择速度的自由度也就越小。太高的取值会大大降低代理的移动速度。必须为正数。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_set_time_horizon_obstacles: .. rst-class:: classref-method |void| **agent_set_time_horizon_obstacles**\ (\ agent\: :ref:`RID`, time_horizon\: :ref:`float`\ ) :ref:`🔗` 考虑其他静态避障障碍物的前提下,该代理的速度的最短安全时间,这个速度是通过仿真得到的。数值越大,代理响应存在的静态避障障碍物的速度就越快,但该代理选择速度的自由度也就越小。太高的取值会大大降低代理的移动速度。必须为正数。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_set_use_3d_avoidance: .. rst-class:: classref-method |void| **agent_set_use_3d_avoidance**\ (\ agent\: :ref:`RID`, enabled\: :ref:`bool`\ ) :ref:`🔗` 设置该代理在启用避障时使用 2D 避障还是 3D 避障。 如果为 ``true``\ ,则代理会为 XYZ 轴计算 3D 避障速度,例如在空中、水下、太空中进行的游戏。使用 3D 的代理只会躲避其他使用 3D 避障的代理。使用 3D 的代理只会响应基于半径的避障障碍物。使用 3D 的代理会忽略基于顶点的障碍物。使用 3D 的代理只会躲避其他使用 3D 的代理。 如果为 ``false``\ ,则代理会沿 XZ 轴计算 2D 避障速度,忽略 Y 轴。使用 2D 的代理只会躲避其他使用 2D 避障的代理。使用 2D 的代理会响应基于半径的避障障碍物。使用 2D 的代理会响应基于顶点的避障障碍物。使用 2D 的代理只会躲避其他使用 2D 的代理。在 2D 避障时,使用 2D 的代理会忽略它们位于当前位置之下或者位于当前位置与代理高度之和之上的其他使用 2D 的代理和障碍物。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_set_velocity: .. rst-class:: classref-method |void| **agent_set_velocity**\ (\ agent\: :ref:`RID`, velocity\: :ref:`Vector3`\ ) :ref:`🔗` 将 ``velocity`` 设置为指定代理 ``agent`` 的新的需求速度。避障仿真会尽可能尝试满足这个速度,但为了躲避与其他代理和障碍物的碰撞也会对它进行修改。将代理传送至新的位置时,请使用 :ref:`agent_set_velocity_forced()` 重置内部仿真速度。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_agent_set_velocity_forced: .. rst-class:: classref-method |void| **agent_set_velocity_forced**\ (\ agent\: :ref:`RID`, velocity\: :ref:`Vector3`\ ) :ref:`🔗` 将指定代理 ``agent`` 的避障仿真内部速度替换为 ``velocity``\ 。将代理传送至新的位置时,应该在同一帧里使用这个函数。频繁调用这个函数可能让代理卡住。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_bake_from_source_geometry_data: .. rst-class:: classref-method |void| **bake_from_source_geometry_data**\ (\ navigation_mesh\: :ref:`NavigationMesh`, source_geometry_data\: :ref:`NavigationMeshSourceGeometryData3D`, callback\: :ref:`Callable` = Callable()\ ) :ref:`🔗` 使用 ``source_geometry_data`` 中提供的数据对 ``navigation_mesh`` 进行烘焙。烘焙过程结束后,会调用可选的 ``callback``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_bake_from_source_geometry_data_async: .. rst-class:: classref-method |void| **bake_from_source_geometry_data_async**\ (\ navigation_mesh\: :ref:`NavigationMesh`, source_geometry_data\: :ref:`NavigationMeshSourceGeometryData3D`, callback\: :ref:`Callable` = Callable()\ ) :ref:`🔗` 使用提供的 ``source_geometry_data`` 中的数据烘焙提供的 ``navigation_mesh``\ ,并作为在后台线程上运行的异步任务。该过程完成后,将调用可选的 ``callback``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_free_rid: .. rst-class:: classref-method |void| **free_rid**\ (\ rid\: :ref:`RID`\ ) :ref:`🔗` 销毁给定的 RID。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_get_debug_enabled: .. rst-class:: classref-method :ref:`bool` **get_debug_enabled**\ (\ ) |const| :ref:`🔗` 如果该 NavigationServer 启用了调试,则返回 ``true``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_get_maps: .. rst-class:: classref-method :ref:`Array`\[:ref:`RID`\] **get_maps**\ (\ ) |const| :ref:`🔗` 返回该 NavigationServer 上所有已创建的导航地图的 :ref:`RID`\ 。会同时返回已创建的 2D 和 3D 导航地图,因为理论上它们之间是没有区别的。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_get_process_info: .. rst-class:: classref-method :ref:`int` **get_process_info**\ (\ process_info\: :ref:`ProcessInfo`\ ) |const| :ref:`🔗` 返回有关 NavigationServer 当前状态的信息。有关可用状态的列表,请参阅 :ref:`ProcessInfo`\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_is_baking_navigation_mesh: .. rst-class:: classref-method :ref:`bool` **is_baking_navigation_mesh**\ (\ navigation_mesh\: :ref:`NavigationMesh`\ ) |const| :ref:`🔗` 当提供的导航网格正在后台线程上烘焙时返回 ``true``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_link_create: .. rst-class:: classref-method :ref:`RID` **link_create**\ (\ ) :ref:`🔗` 在地图上新建两个地点之间的链接。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_link_get_enabled: .. rst-class:: classref-method :ref:`bool` **link_get_enabled**\ (\ link\: :ref:`RID`\ ) |const| :ref:`🔗` 如果指定的 ``link`` 已启用,则返回 ``true``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_link_get_end_position: .. rst-class:: classref-method :ref:`Vector3` **link_get_end_position**\ (\ link\: :ref:`RID`\ ) |const| :ref:`🔗` 返回链接 ``link`` 的结束位置。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_link_get_enter_cost: .. rst-class:: classref-method :ref:`float` **link_get_enter_cost**\ (\ link\: :ref:`RID`\ ) |const| :ref:`🔗` 返回 ``link`` 链接的进入消耗。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_link_get_map: .. rst-class:: classref-method :ref:`RID` **link_get_map**\ (\ link\: :ref:`RID`\ ) |const| :ref:`🔗` 返回请求的导航链接 ``link`` 当前分配的导航地图的 :ref:`RID`\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_link_get_navigation_layers: .. rst-class:: classref-method :ref:`int` **link_get_navigation_layers**\ (\ link\: :ref:`RID`\ ) |const| :ref:`🔗` 返回 ``link`` 的导航层。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_link_get_owner_id: .. rst-class:: classref-method :ref:`int` **link_get_owner_id**\ (\ link\: :ref:`RID`\ ) |const| :ref:`🔗` 返回管理该链接的对象的 ``ObjectID``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_link_get_start_position: .. rst-class:: classref-method :ref:`Vector3` **link_get_start_position**\ (\ link\: :ref:`RID`\ ) |const| :ref:`🔗` 返回 ``link`` 链接的入口位置。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_link_get_travel_cost: .. rst-class:: classref-method :ref:`float` **link_get_travel_cost**\ (\ link\: :ref:`RID`\ ) |const| :ref:`🔗` 返回 ``link`` 链接的移动消耗。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_link_is_bidirectional: .. rst-class:: classref-method :ref:`bool` **link_is_bidirectional**\ (\ link\: :ref:`RID`\ ) |const| :ref:`🔗` 返回该 ``link`` 是否能够双向通行。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_link_set_bidirectional: .. rst-class:: classref-method |void| **link_set_bidirectional**\ (\ link\: :ref:`RID`, bidirectional\: :ref:`bool`\ ) :ref:`🔗` 设置该 ``link`` 是否能够双向通行。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_link_set_enabled: .. rst-class:: classref-method |void| **link_set_enabled**\ (\ link\: :ref:`RID`, enabled\: :ref:`bool`\ ) :ref:`🔗` 如果 ``enabled`` 为 ``true``\ ,则指定的 ``link`` 会在它的当前导航地图中生效。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_link_set_end_position: .. rst-class:: classref-method |void| **link_set_end_position**\ (\ link\: :ref:`RID`, position\: :ref:`Vector3`\ ) :ref:`🔗` 设置 ``link`` 的出口位置。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_link_set_enter_cost: .. rst-class:: classref-method |void| **link_set_enter_cost**\ (\ link\: :ref:`RID`, enter_cost\: :ref:`float`\ ) :ref:`🔗` 设置 ``link`` 的进入消耗 ``enter_cost``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_link_set_map: .. rst-class:: classref-method |void| **link_set_map**\ (\ link\: :ref:`RID`, map\: :ref:`RID`\ ) :ref:`🔗` 设置该链接的导航地图 :ref:`RID`\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_link_set_navigation_layers: .. rst-class:: classref-method |void| **link_set_navigation_layers**\ (\ link\: :ref:`RID`, navigation_layers\: :ref:`int`\ ) :ref:`🔗` 设置该链接的导航层。这允许从路径请求中选择链接(当使用 :ref:`map_get_path()` 时)。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_link_set_owner_id: .. rst-class:: classref-method |void| **link_set_owner_id**\ (\ link\: :ref:`RID`, owner_id\: :ref:`int`\ ) :ref:`🔗` 设置管理该链接的对象的 ``ObjectID``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_link_set_start_position: .. rst-class:: classref-method |void| **link_set_start_position**\ (\ link\: :ref:`RID`, position\: :ref:`Vector3`\ ) :ref:`🔗` 设置 ``link`` 的入口位置。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_link_set_travel_cost: .. rst-class:: classref-method |void| **link_set_travel_cost**\ (\ link\: :ref:`RID`, travel_cost\: :ref:`float`\ ) :ref:`🔗` 设置 ``link`` 的移动消耗 ``travel_cost``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_create: .. rst-class:: classref-method :ref:`RID` **map_create**\ (\ ) :ref:`🔗` 创建一张新地图。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_force_update: .. rst-class:: classref-method |void| **map_force_update**\ (\ map\: :ref:`RID`\ ) :ref:`🔗` 该函数将立即强制指定的导航 ``map`` :ref:`RID` 的同步。默认情况下,导航地图仅在每个物理帧结束时同步。该函数可用于立即(重新)计算该导航地图的所有导航网格和区块连接。这使得可以在同一帧中对修改后的地图的导航路径立即执行查询(如果需要,可以执行多次)。 由于技术上的限制,当前的 NavigationServer 命令队列将被冲刷。这意味着所有已在当前物理帧中入队的更新命令都会被执行,即使是那些用于其他地图、不属于指定地图的区块和代理的更新命令。 昂贵计算的导航网格和地图的区块连接将仅针对指定地图进行。其他地图将在物理帧结束时接收正常同步。如果指定的地图在强制更新后又收到了修改,则它将在其他地图收到更新时再次更新。 避障处理和 ``safe_velocity`` 信号的分发不受该函数影响,仍继续发生在物理帧结束时的所有地图和代理上。 \ **注意:**\ 能力越大,责任越大。该函数仅该用于用户真正知道自己在做什么并且有充分理由的情况。强制立即更新导航地图需要锁定 NavigationServer 并冲刷整个 NavigationServer 命令队列。这不仅会严重影响游戏的性能,而且如果缺乏远见且使用不当,还会引入 bug。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_get_agents: .. rst-class:: classref-method :ref:`Array`\[:ref:`RID`\] **map_get_agents**\ (\ map\: :ref:`RID`\ ) |const| :ref:`🔗` 返回所有与请求的导航地图 ``map`` 关联的导航代理的 :ref:`RID`\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_get_cell_height: .. rst-class:: classref-method :ref:`float` **map_get_cell_height**\ (\ map\: :ref:`RID`\ ) |const| :ref:`🔗` 返回在 Y 轴上栅格化导航网格顶点所使用的地图单元格高度。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_get_cell_size: .. rst-class:: classref-method :ref:`float` **map_get_cell_size**\ (\ map\: :ref:`RID`\ ) |const| :ref:`🔗` 返回在 XZ 平面上栅格化导航网格顶点所使用的地图单元格大小。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_get_closest_point: .. rst-class:: classref-method :ref:`Vector3` **map_get_closest_point**\ (\ map\: :ref:`RID`, to_point\: :ref:`Vector3`\ ) |const| :ref:`🔗` 返回导航地图 ``map`` 中,导航网格表面上与给定的 ``to_point`` 距离最近的点。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_get_closest_point_normal: .. rst-class:: classref-method :ref:`Vector3` **map_get_closest_point_normal**\ (\ map\: :ref:`RID`, to_point\: :ref:`Vector3`\ ) |const| :ref:`🔗` 返回导航地图 ``map`` 上与给定点 ``to_point`` 最接近的导航网格表面法线。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_get_closest_point_owner: .. rst-class:: classref-method :ref:`RID` **map_get_closest_point_owner**\ (\ map\: :ref:`RID`, to_point\: :ref:`Vector3`\ ) |const| :ref:`🔗` 返回导航地图 ``map`` 中,导航网格表面上与给定的 ``to_point`` 距离最近的点对应的所有者区块 RID。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_get_closest_point_to_segment: .. rst-class:: classref-method :ref:`Vector3` **map_get_closest_point_to_segment**\ (\ map\: :ref:`RID`, start\: :ref:`Vector3`, end\: :ref:`Vector3`, use_collision\: :ref:`bool` = false\ ) |const| :ref:`🔗` 返回导航地图 ``map`` 上与给定起点 ``start`` 和终点 ``end`` 构成的线段最接近的导航网格表面点。 如果 ``use_collision`` 为 ``true``\ ,则只有在线段与该导航网格表面相交时才算最接近的点。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_get_edge_connection_margin: .. rst-class:: classref-method :ref:`float` **map_get_edge_connection_margin**\ (\ map\: :ref:`RID`\ ) |const| :ref:`🔗` 返回地图的边界连接边距。这是让两个不同地区的边界相连所需的最小顶点距离。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_get_iteration_id: .. rst-class:: classref-method :ref:`int` **map_get_iteration_id**\ (\ map\: :ref:`RID`\ ) |const| :ref:`🔗` 返回导航地图的当前迭代 ID。导航地图发生更改并同步时都会增加迭代 ID。迭代 ID 为 0 表示导航地图从未进行过同步。 \ **注意:**\ 迭代 ID 超过取值范围后会绕回 1。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_get_link_connection_radius: .. rst-class:: classref-method :ref:`float` **map_get_link_connection_radius**\ (\ map\: :ref:`RID`\ ) |const| :ref:`🔗` 返回该地图的链接连接半径。该距离是任何链接将搜索要连接的导航网格多边形的最大范围。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_get_links: .. rst-class:: classref-method :ref:`Array`\[:ref:`RID`\] **map_get_links**\ (\ map\: :ref:`RID`\ ) |const| :ref:`🔗` 返回当前分配给请求的导航地图 ``map`` 的所有导航链接的 :ref:`RID`\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_get_merge_rasterizer_cell_scale: .. rst-class:: classref-method :ref:`float` **map_get_merge_rasterizer_cell_scale**\ (\ map\: :ref:`RID`\ ) |const| :ref:`🔗` 返回地图的内部合并栅格化器的单元格缩放。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_get_obstacles: .. rst-class:: classref-method :ref:`Array`\[:ref:`RID`\] **map_get_obstacles**\ (\ map\: :ref:`RID`\ ) |const| :ref:`🔗` 返回当前分配给请求的导航地图 ``map`` 的所有导航障碍物的 :ref:`RID`\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_get_path: .. rst-class:: classref-method :ref:`PackedVector3Array` **map_get_path**\ (\ map\: :ref:`RID`, origin\: :ref:`Vector3`, destination\: :ref:`Vector3`, optimize\: :ref:`bool`, navigation_layers\: :ref:`int` = 1\ ) :ref:`🔗` 返回从原点到达目的地的导航路径。\ ``navigation_layers`` 是被允许在路径中的所有区块导航层的位掩码。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_get_random_point: .. rst-class:: classref-method :ref:`Vector3` **map_get_random_point**\ (\ map\: :ref:`RID`, navigation_layers\: :ref:`int`, uniformly\: :ref:`bool`\ ) |const| :ref:`🔗` 返回与 ``navigation_layers`` 匹配的所有地图区块多边形中随机挑选的位置。 如果 ``uniformly`` 为 ``true``\ ,则所有地图区块、多边形、面的权重都会根据对应表面调整权重(较慢)。 如果 ``uniformly`` 为 ``false``\ ,则只会简单地随机挑选一个区块和一个多边形(较快)。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_get_regions: .. rst-class:: classref-method :ref:`Array`\[:ref:`RID`\] **map_get_regions**\ (\ map\: :ref:`RID`\ ) |const| :ref:`🔗` 返回当前分配给所请求的导航 ``map`` 的所有导航区块的 :ref:`RID`\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_get_up: .. rst-class:: classref-method :ref:`Vector3` **map_get_up**\ (\ map\: :ref:`RID`\ ) |const| :ref:`🔗` 返回地图的上方向。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_get_use_async_iterations: .. rst-class:: classref-method :ref:`bool` **map_get_use_async_iterations**\ (\ map\: :ref:`RID`\ ) |const| :ref:`🔗` 如果地图 ``map`` 的同步使用后台线程异步处理,则返回 ``true``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_get_use_edge_connections: .. rst-class:: classref-method :ref:`bool` **map_get_use_edge_connections**\ (\ map\: :ref:`RID`\ ) |const| :ref:`🔗` 如果导航地图 ``map`` 允许导航区块使用边缘连接与位于导航地图边缘连接边距范围内的其他导航区块相连接,则返回 ``true``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_is_active: .. rst-class:: classref-method :ref:`bool` **map_is_active**\ (\ map\: :ref:`RID`\ ) |const| :ref:`🔗` 如果地图处于活动状态,则返回 ``true``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_set_active: .. rst-class:: classref-method |void| **map_set_active**\ (\ map\: :ref:`RID`, active\: :ref:`bool`\ ) :ref:`🔗` 设置地图的激活态。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_set_cell_height: .. rst-class:: classref-method |void| **map_set_cell_height**\ (\ map\: :ref:`RID`, cell_height\: :ref:`float`\ ) :ref:`🔗` 设置在 Y 轴上栅格化导航网格顶点所使用的地图单元格高度。必须与所使用的导航网格的单元格高度相匹配。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_set_cell_size: .. rst-class:: classref-method |void| **map_set_cell_size**\ (\ map\: :ref:`RID`, cell_size\: :ref:`float`\ ) :ref:`🔗` 设置在 XZ 平面上栅格化导航网格顶点所使用的地图单元格大小。必须与所使用的导航网格的单元格大小相匹配。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_set_edge_connection_margin: .. rst-class:: classref-method |void| **map_set_edge_connection_margin**\ (\ map\: :ref:`RID`, margin\: :ref:`float`\ ) :ref:`🔗` 设置用于焊接兼容地区边界的地图边界连接边距。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_set_link_connection_radius: .. rst-class:: classref-method |void| **map_set_link_connection_radius**\ (\ map\: :ref:`RID`, radius\: :ref:`float`\ ) :ref:`🔗` 设置该地图用于连接链接和导航多边形的链接连接半径。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_set_merge_rasterizer_cell_scale: .. rst-class:: classref-method |void| **map_set_merge_rasterizer_cell_scale**\ (\ map\: :ref:`RID`, scale\: :ref:`float`\ ) :ref:`🔗` 设置地图的内部合并栅格化器的单元格缩放,用于控制合并的敏感度。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_set_up: .. rst-class:: classref-method |void| **map_set_up**\ (\ map\: :ref:`RID`, up\: :ref:`Vector3`\ ) :ref:`🔗` 设置地图的上方向。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_set_use_async_iterations: .. rst-class:: classref-method |void| **map_set_use_async_iterations**\ (\ map\: :ref:`RID`, enabled\: :ref:`bool`\ ) :ref:`🔗` 如果 ``enabled`` 为 ``true``\ ,则地图 ``map`` 的同步使用后台线程异步处理。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_map_set_use_edge_connections: .. rst-class:: classref-method |void| **map_set_use_edge_connections**\ (\ map\: :ref:`RID`, enabled\: :ref:`bool`\ ) :ref:`🔗` 设置导航地图 ``map`` 的边缘连接使用情况。如果 ``enabled`` 为 ``true``\ ,则导航地图允许导航区块使用边缘连接与位于导航地图边缘连接边距范围内的其他导航区块相连接。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_obstacle_create: .. rst-class:: classref-method :ref:`RID` **obstacle_create**\ (\ ) :ref:`🔗` 新建障碍物。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_obstacle_get_avoidance_enabled: .. rst-class:: classref-method :ref:`bool` **obstacle_get_avoidance_enabled**\ (\ obstacle\: :ref:`RID`\ ) |const| :ref:`🔗` 如果给定的 ``obstacle`` 启用了避障,则返回 ``true``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_obstacle_get_avoidance_layers: .. rst-class:: classref-method :ref:`int` **obstacle_get_avoidance_layers**\ (\ obstacle\: :ref:`RID`\ ) |const| :ref:`🔗` 返回指定 ``obstacle`` 的 ``avoidance_layers`` 位掩码。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_obstacle_get_height: .. rst-class:: classref-method :ref:`float` **obstacle_get_height**\ (\ obstacle\: :ref:`RID`\ ) |const| :ref:`🔗` 返回指定 ``obstacle`` 的 ``height``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_obstacle_get_map: .. rst-class:: classref-method :ref:`RID` **obstacle_get_map**\ (\ obstacle\: :ref:`RID`\ ) |const| :ref:`🔗` 返回请求的障碍物 ``obstacle`` 当前分配的导航地图 :ref:`RID`\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_obstacle_get_paused: .. rst-class:: classref-method :ref:`bool` **obstacle_get_paused**\ (\ obstacle\: :ref:`RID`\ ) |const| :ref:`🔗` 如果指定的 ``obstacle`` 被暂停,则返回 ``true``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_obstacle_get_position: .. rst-class:: classref-method :ref:`Vector3` **obstacle_get_position**\ (\ obstacle\: :ref:`RID`\ ) |const| :ref:`🔗` 返回在世界空间中指定的 ``obstacle`` 的位置。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_obstacle_get_radius: .. rst-class:: classref-method :ref:`float` **obstacle_get_radius**\ (\ obstacle\: :ref:`RID`\ ) |const| :ref:`🔗` 返回指定的动态 ``obstacle`` 的半径。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_obstacle_get_use_3d_avoidance: .. rst-class:: classref-method :ref:`bool` **obstacle_get_use_3d_avoidance**\ (\ obstacle\: :ref:`RID`\ ) |const| :ref:`🔗` 如果提供的 ``obstacle`` 使用 3D 空间的 Vector3(x,y,z),不使用水平 2D Vector2(x,y) / Vector3(x,0.0,z),则返回 ``true``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_obstacle_get_velocity: .. rst-class:: classref-method :ref:`Vector3` **obstacle_get_velocity**\ (\ obstacle\: :ref:`RID`\ ) |const| :ref:`🔗` 返回指定的动态 ``obstacle`` 的速度。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_obstacle_get_vertices: .. rst-class:: classref-method :ref:`PackedVector3Array` **obstacle_get_vertices**\ (\ obstacle\: :ref:`RID`\ ) |const| :ref:`🔗` 返回指定的 ``obstacle`` 的轮廓顶点。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_obstacle_set_avoidance_enabled: .. rst-class:: classref-method |void| **obstacle_set_avoidance_enabled**\ (\ obstacle\: :ref:`RID`, enabled\: :ref:`bool`\ ) :ref:`🔗` 如果 ``enabled`` 为 ``true``\ ,则提供的障碍物 ``obstacle`` 会影响使用代理的避障。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_obstacle_set_avoidance_layers: .. rst-class:: classref-method |void| **obstacle_set_avoidance_layers**\ (\ obstacle\: :ref:`RID`, layers\: :ref:`int`\ ) :ref:`🔗` 设置障碍物的避障层 ``avoidance_layers`` 位掩码。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_obstacle_set_height: .. rst-class:: classref-method |void| **obstacle_set_height**\ (\ obstacle\: :ref:`RID`, height\: :ref:`float`\ ) :ref:`🔗` 设置 ``obstacle`` 的高度 ``height``\ 。3D 代理会忽略位于其上方和下方的障碍物,使用 2D 避障。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_obstacle_set_map: .. rst-class:: classref-method |void| **obstacle_set_map**\ (\ obstacle\: :ref:`RID`, map\: :ref:`RID`\ ) :ref:`🔗` 将 ``obstacle`` 分配给导航地图。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_obstacle_set_paused: .. rst-class:: classref-method |void| **obstacle_set_paused**\ (\ obstacle\: :ref:`RID`, paused\: :ref:`bool`\ ) :ref:`🔗` 如果 ``paused`` 为 ``true``\ ,则不会处理指定的障碍物 ``obstacle``\ ,例如不会影响避障速度。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_obstacle_set_position: .. rst-class:: classref-method |void| **obstacle_set_position**\ (\ obstacle\: :ref:`RID`, position\: :ref:`Vector3`\ ) :ref:`🔗` 为 ``obstacle`` 更新世界空间中的位置 ``position``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_obstacle_set_radius: .. rst-class:: classref-method |void| **obstacle_set_radius**\ (\ obstacle\: :ref:`RID`, radius\: :ref:`float`\ ) :ref:`🔗` 设置动态障碍物的半径。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_obstacle_set_use_3d_avoidance: .. rst-class:: classref-method |void| **obstacle_set_use_3d_avoidance**\ (\ obstacle\: :ref:`RID`, enabled\: :ref:`bool`\ ) :ref:`🔗` 设置 ``obstacle`` 在启用避障时使用 2D 避障还是 3D 避障。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_obstacle_set_velocity: .. rst-class:: classref-method |void| **obstacle_set_velocity**\ (\ obstacle\: :ref:`RID`, velocity\: :ref:`Vector3`\ ) :ref:`🔗` 将动态障碍物 ``obstacle`` 的速度设置为 ``velocity``\ 。能够让其他代理更好地预测该动态障碍物的移动。仅在与障碍物半径一同使用时有效。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_obstacle_set_vertices: .. rst-class:: classref-method |void| **obstacle_set_vertices**\ (\ obstacle\: :ref:`RID`, vertices\: :ref:`PackedVector3Array`\ ) :ref:`🔗` 设置障碍物的轮廓顶点。如果顶点顺时针缠绕,则障碍物会将代理向内部推挤,否则向外推挤。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_parse_source_geometry_data: .. rst-class:: classref-method |void| **parse_source_geometry_data**\ (\ navigation_mesh\: :ref:`NavigationMesh`, source_geometry_data\: :ref:`NavigationMeshSourceGeometryData3D`, root_node\: :ref:`Node`, callback\: :ref:`Callable` = Callable()\ ) :ref:`🔗` 根据 ``navigation_mesh`` 的属性解析 :ref:`SceneTree` 中的源几何体。会使用解析的结果对提供的 ``source_geometry_data`` 资源进行更新。后续可以在使用 :ref:`bake_from_source_geometry_data()` 烘焙导航网格时使用该资源。解析过程完成后,会调用可选的 ``callback``\ 。 \ **注意:**\ 因为 SceneTree 并不是线程安全的,所以这个函数需要在主线程执行或使用延迟调用。 \ **注意:**\ 从 :ref:`Mesh` 资源读取数据数组虽然很方便,但会对帧率造成负面影响。这些数据需要从 GPU 获取,卡住正在处理的 :ref:`RenderingServer`\ 。出于性能考量,请优先使用碰撞形状或在代码中创建完整的数据数组等方法。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_query_path: .. rst-class:: classref-method |void| **query_path**\ (\ parameters\: :ref:`NavigationPathQueryParameters3D`, result\: :ref:`NavigationPathQueryResult3D`, callback\: :ref:`Callable` = Callable()\ ) :ref:`🔗` 在给定的导航地图中查询路径。起点、目标点以及其他参数通过 :ref:`NavigationPathQueryParameters3D` 定义。会更新所提供的 :ref:`NavigationPathQueryResult3D` 结果对象中的路径以及其他查询中请求的结果。处理完成后会调用可选的回调 ``callback``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_bake_navigation_mesh: .. rst-class:: classref-method |void| **region_bake_navigation_mesh**\ (\ navigation_mesh\: :ref:`NavigationMesh`, root_node\: :ref:`Node`\ ) :ref:`🔗` **已弃用:** This method is deprecated due to core threading changes. To upgrade existing code, first create a :ref:`NavigationMeshSourceGeometryData3D` resource. Use this resource with :ref:`parse_source_geometry_data()` to parse the :ref:`SceneTree` for nodes that should contribute to the navigation mesh baking. The :ref:`SceneTree` parsing needs to happen on the main thread. After the parsing is finished use the resource with :ref:`bake_from_source_geometry_data()` to bake a navigation mesh. 烘焙 ``navigation_mesh``\ ,烘焙的来源几何体从 ``root_node`` 开始收集。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_create: .. rst-class:: classref-method :ref:`RID` **region_create**\ (\ ) :ref:`🔗` 创建一个新的地区。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_get_bounds: .. rst-class:: classref-method :ref:`AABB` **region_get_bounds**\ (\ region\: :ref:`RID`\ ) |const| :ref:`🔗` 返回区块 ``region`` 变换后的导航网格所对应的轴对齐边界框。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_get_closest_point: .. rst-class:: classref-method :ref:`Vector3` **region_get_closest_point**\ (\ region\: :ref:`RID`, to_point\: :ref:`Vector3`\ ) |const| :ref:`🔗` 返回导航区块 ``region`` 上与给定点 ``to_point`` 最接近的导航网格表面点。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_get_closest_point_normal: .. rst-class:: classref-method :ref:`Vector3` **region_get_closest_point_normal**\ (\ region\: :ref:`RID`, to_point\: :ref:`Vector3`\ ) |const| :ref:`🔗` 返回导航区块 ``region`` 上与给定点 ``to_point`` 最接近的导航网格表面法线。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_get_closest_point_to_segment: .. rst-class:: classref-method :ref:`Vector3` **region_get_closest_point_to_segment**\ (\ region\: :ref:`RID`, start\: :ref:`Vector3`, end\: :ref:`Vector3`, use_collision\: :ref:`bool` = false\ ) |const| :ref:`🔗` 返回导航区块 ``region`` 上与给定起点 ``start`` 和终点 ``end`` 构成的线段最接近的导航网格表面点。 如果 ``use_collision`` 为 ``true``\ ,则只有在线段与该导航网格表面相交时才算最接近的点。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_get_connection_pathway_end: .. rst-class:: classref-method :ref:`Vector3` **region_get_connection_pathway_end**\ (\ region\: :ref:`RID`, connection\: :ref:`int`\ ) |const| :ref:`🔗` 返回连接门的终点。\ ``connection`` 是一个索引,介于 0 和 :ref:`region_get_connections_count()` 的返回值之间。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_get_connection_pathway_start: .. rst-class:: classref-method :ref:`Vector3` **region_get_connection_pathway_start**\ (\ region\: :ref:`RID`, connection\: :ref:`int`\ ) |const| :ref:`🔗` 返回连接门的起点。\ ``connection`` 是一个索引,介于 0 和 :ref:`region_get_connections_count()` 的返回值之间。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_get_connections_count: .. rst-class:: classref-method :ref:`int` **region_get_connections_count**\ (\ region\: :ref:`RID`\ ) |const| :ref:`🔗` 返回 ``region`` 地区与其他地区在地图上有多少连接。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_get_enabled: .. rst-class:: classref-method :ref:`bool` **region_get_enabled**\ (\ region\: :ref:`RID`\ ) |const| :ref:`🔗` 如果指定的 ``region`` 已启用,则返回 ``true``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_get_enter_cost: .. rst-class:: classref-method :ref:`float` **region_get_enter_cost**\ (\ region\: :ref:`RID`\ ) |const| :ref:`🔗` 返回 ``region`` 地区的进入消耗。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_get_map: .. rst-class:: classref-method :ref:`RID` **region_get_map**\ (\ region\: :ref:`RID`\ ) |const| :ref:`🔗` 返回请求的 ``region`` 地区所关联的导航地图的 :ref:`RID`\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_get_navigation_layers: .. rst-class:: classref-method :ref:`int` **region_get_navigation_layers**\ (\ region\: :ref:`RID`\ ) |const| :ref:`🔗` 返回该地区的导航层。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_get_owner_id: .. rst-class:: classref-method :ref:`int` **region_get_owner_id**\ (\ region\: :ref:`RID`\ ) |const| :ref:`🔗` 返回管理该地区对象的 ``ObjectID``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_get_random_point: .. rst-class:: classref-method :ref:`Vector3` **region_get_random_point**\ (\ region\: :ref:`RID`, navigation_layers\: :ref:`int`, uniformly\: :ref:`bool`\ ) |const| :ref:`🔗` 返回与 ``navigation_layers`` 匹配的所有区块多边形中随机挑选的位置。 如果 ``uniformly`` 为 ``true``\ ,则所有区块多边形和面的权重都会根据对应表面调整权重(较慢)。 如果 ``uniformly`` 为 ``false``\ ,则只会简单地随机挑选一个多边形和一个面(较快)。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_get_transform: .. rst-class:: classref-method :ref:`Transform3D` **region_get_transform**\ (\ region\: :ref:`RID`\ ) |const| :ref:`🔗` 返回该 ``region`` 的全局变换。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_get_travel_cost: .. rst-class:: classref-method :ref:`float` **region_get_travel_cost**\ (\ region\: :ref:`RID`\ ) |const| :ref:`🔗` 返回 ``region`` 地区的移动消耗。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_get_use_edge_connections: .. rst-class:: classref-method :ref:`bool` **region_get_use_edge_connections**\ (\ region\: :ref:`RID`\ ) |const| :ref:`🔗` 如果导航区块 ``region`` 被设置为使用边缘连接与位于导航地图边缘连接边距范围内的其他导航区块相连接,则返回 ``true``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_owns_point: .. rst-class:: classref-method :ref:`bool` **region_owns_point**\ (\ region\: :ref:`RID`, point\: :ref:`Vector3`\ ) |const| :ref:`🔗` 如果提供的世界空间中的 ``point`` 当前由提供的导航区块 ``region`` 拥有,则返回 ``true``\ 。在这里的上下文中,“拥有”意味着与来自其他导航区块的所有其他导航网格相比,该区块的导航网格多边形面中有一个距离该点最近的可能位置,这些其他导航区块也已在提供的区块的导航地图上注册。 如果有多个导航网格存在符合条件的位置并且距离相等,那么其多边形先被处理的导航区块将赢得所有权。多边形的处理顺序与导航区块在 NavigationServer 上的注册顺序一致。 \ **注意:**\ 如果来自不同导航区块的导航网格存在重叠(通常应当避免),可能会得到预料之外的结果。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_set_enabled: .. rst-class:: classref-method |void| **region_set_enabled**\ (\ region\: :ref:`RID`, enabled\: :ref:`bool`\ ) :ref:`🔗` 如果 ``enabled`` 为 ``true``\ ,则指定的 ``region`` 会在它的当前导航地图中生效。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_set_enter_cost: .. rst-class:: classref-method |void| **region_set_enter_cost**\ (\ region\: :ref:`RID`, enter_cost\: :ref:`float`\ ) :ref:`🔗` 设置 ``region`` 地区的进入消耗 ``enter_cost``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_set_map: .. rst-class:: classref-method |void| **region_set_map**\ (\ region\: :ref:`RID`, map\: :ref:`RID`\ ) :ref:`🔗` 设置该地区的地图。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_set_navigation_layers: .. rst-class:: classref-method |void| **region_set_navigation_layers**\ (\ region\: :ref:`RID`, navigation_layers\: :ref:`int`\ ) :ref:`🔗` 设置地区的导航层。能够在路径请求中选择地区(使用 :ref:`map_get_path()`\ )。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_set_navigation_mesh: .. rst-class:: classref-method |void| **region_set_navigation_mesh**\ (\ region\: :ref:`RID`, navigation_mesh\: :ref:`NavigationMesh`\ ) :ref:`🔗` 设置该地图的导航网格。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_set_owner_id: .. rst-class:: classref-method |void| **region_set_owner_id**\ (\ region\: :ref:`RID`, owner_id\: :ref:`int`\ ) :ref:`🔗` 设置管理该地区对象的 ``ObjectID``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_set_transform: .. rst-class:: classref-method |void| **region_set_transform**\ (\ region\: :ref:`RID`, transform\: :ref:`Transform3D`\ ) :ref:`🔗` 设置该地区的全局变换。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_set_travel_cost: .. rst-class:: classref-method |void| **region_set_travel_cost**\ (\ region\: :ref:`RID`, travel_cost\: :ref:`float`\ ) :ref:`🔗` 设置 ``region`` 地区的移动消耗 ``travel_cost``\ 。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_region_set_use_edge_connections: .. rst-class:: classref-method |void| **region_set_use_edge_connections**\ (\ region\: :ref:`RID`, enabled\: :ref:`bool`\ ) :ref:`🔗` 如果 ``enabled`` 为 ``true``\ ,则导航区块 ``region`` 将使用边缘连接来与位于导航地图边缘连接边距范围内的其他导航区块相连接。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_set_active: .. rst-class:: classref-method |void| **set_active**\ (\ active\: :ref:`bool`\ ) :ref:`🔗` 控制这个服务器是否激活。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_set_debug_enabled: .. rst-class:: classref-method |void| **set_debug_enabled**\ (\ enabled\: :ref:`bool`\ ) :ref:`🔗` 如果为 ``true``\ ,则该 NavigationServer 启用了调试模式。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_simplify_path: .. rst-class:: classref-method :ref:`PackedVector3Array` **simplify_path**\ (\ path\: :ref:`PackedVector3Array`, epsilon\: :ref:`float`\ ) :ref:`🔗` 返回 ``path`` 的简化版本,其中移除了不太重要的路径点。简化量以世界单位表示,由 ``epsilon`` 控制。简化使用 Ramer-Douglas-Peucker 算法的变体进行曲线点抽取。 路径简化有助于缓解某些代理类型和脚本行为可能出现的各种路径跟踪问题。例如“转向”代理或“开放场”中的避让。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_source_geometry_parser_create: .. rst-class:: classref-method :ref:`RID` **source_geometry_parser_create**\ (\ ) :ref:`🔗` 创建一个新的源几何解析器。如果使用 :ref:`source_geometry_parser_set_callback()` 为解析器设置了 :ref:`Callable`\ ,则每当使用 :ref:`parse_source_geometry_data()` 时,都会为每个解析的节点调用回调。 .. rst-class:: classref-item-separator ---- .. _class_NavigationServer3D_method_source_geometry_parser_set_callback: .. rst-class:: classref-method |void| **source_geometry_parser_set_callback**\ (\ parser\: :ref:`RID`, callback\: :ref:`Callable`\ ) :ref:`🔗` 为特定源几何体 ``parser`` 设置 ``callback`` :ref:`Callable`\ 。\ :ref:`Callable` 将接收具有以下参数的调用: - ``navigation_mesh`` - 用于定义解析设置的 :ref:`NavigationMesh` 引用。请勿直接编辑或添加到导航网格。 - ``source_geometry_data`` - :ref:`NavigationMeshSourceGeometryData3D` 引用。将用于导航网格烘焙的自定义源几何体添加到该对象。 - ``node`` - 解析的 :ref:`Node`\ 。 .. |virtual| replace:: :abbr:`virtual (本方法通常需要用户覆盖才能生效。)` .. |const| replace:: :abbr:`const (本方法无副作用,不会修改该实例的任何成员变量。)` .. |vararg| replace:: :abbr:`vararg (本方法除了能接受在此处描述的参数外,还能够继续接受任意数量的参数。)` .. |constructor| replace:: :abbr:`constructor (本方法用于构造某个类型。)` .. |static| replace:: :abbr:`static (调用本方法无需实例,可直接使用类名进行调用。)` .. |operator| replace:: :abbr:`operator (本方法描述的是使用本类型作为左操作数的有效运算符。)` .. |bitfield| replace:: :abbr:`BitField (这个值是由下列位标志构成位掩码的整数。)` .. |void| replace:: :abbr:`void (无返回值。)`