瀏覽代碼

Only repath a NavigationAgent with a target position

Only repaths a NavigationAgent with a target position.
smix8 4 月之前
父節點
當前提交
4476fc7099
共有 2 個文件被更改,包括 12 次插入4 次删除
  1. 6 2
      scene/2d/navigation/navigation_agent_2d.cpp
  2. 6 2
      scene/3d/navigation/navigation_agent_3d.cpp

+ 6 - 2
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 {

+ 6 - 2
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 {