소스 검색

Merge pull request #107513 from smix8/agent_repaths

Only repath a NavigationAgent with a target position
Rémi Verschelde 4 달 전
부모
커밋
f99629a136
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 {