From 4476fc70990dfeab9ac0c0514a4c9bc5e7da355e Mon Sep 17 00:00:00 2001 From: smix8 <52464204+smix8@users.noreply.github.com> Date: Sat, 14 Jun 2025 01:26:36 +0200 Subject: [PATCH] Only repath a NavigationAgent with a target position Only repaths a NavigationAgent with a target position. --- scene/2d/navigation/navigation_agent_2d.cpp | 8 ++++++-- scene/3d/navigation/navigation_agent_3d.cpp | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) 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 {