diff --git a/scene/2d/navigation/navigation_agent_2d.cpp b/scene/2d/navigation/navigation_agent_2d.cpp index 8fd09e90d79..d8c8abece6b 100644 --- a/scene/2d/navigation/navigation_agent_2d.cpp +++ b/scene/2d/navigation/navigation_agent_2d.cpp @@ -416,7 +416,9 @@ void NavigationAgent2D::set_navigation_layers(uint32_t p_navigation_layers) { navigation_layers = p_navigation_layers; - _request_repath(); + if (target_position_submitted) { + _request_repath(); + } } uint32_t NavigationAgent2D::get_navigation_layers() const { @@ -535,7 +537,9 @@ void NavigationAgent2D::set_navigation_map(RID p_navigation_map) { map_override = p_navigation_map; NavigationServer2D::get_singleton()->agent_set_map(agent, map_override); - _request_repath(); + if (target_position_submitted) { + _request_repath(); + } } RID NavigationAgent2D::get_navigation_map() const { diff --git a/scene/3d/navigation/navigation_agent_3d.cpp b/scene/3d/navigation/navigation_agent_3d.cpp index 3b4c55ca38b..83faf29150b 100644 --- a/scene/3d/navigation/navigation_agent_3d.cpp +++ b/scene/3d/navigation/navigation_agent_3d.cpp @@ -453,7 +453,9 @@ void NavigationAgent3D::set_navigation_layers(uint32_t p_navigation_layers) { navigation_layers = p_navigation_layers; - _request_repath(); + if (target_position_submitted) { + _request_repath(); + } } uint32_t NavigationAgent3D::get_navigation_layers() const { @@ -572,7 +574,9 @@ void NavigationAgent3D::set_navigation_map(RID p_navigation_map) { map_override = p_navigation_map; NavigationServer3D::get_singleton()->agent_set_map(agent, map_override); - _request_repath(); + if (target_position_submitted) { + _request_repath(); + } } RID NavigationAgent3D::get_navigation_map() const {