Fix NavigationAgent continues avoidance velocity

Fixes NavigationAgent continues avoidance velocity.
This commit is contained in:
smix8 2023-06-29 21:09:26 +02:00
parent 46424488ed
commit c912df9d05
2 changed files with 10 additions and 0 deletions

View File

@ -755,6 +755,11 @@ void NavigationAgent2D::update_navigation() {
navigation_path_index -= 1; navigation_path_index -= 1;
navigation_finished = true; navigation_finished = true;
target_position_submitted = false; target_position_submitted = false;
if (avoidance_enabled) {
NavigationServer2D::get_singleton()->agent_set_position(agent, agent_parent->get_global_position());
NavigationServer2D::get_singleton()->agent_set_velocity(agent, Vector2(0.0, 0.0));
NavigationServer2D::get_singleton()->agent_set_velocity_forced(agent, Vector2(0.0, 0.0));
}
emit_signal(SNAME("navigation_finished")); emit_signal(SNAME("navigation_finished"));
break; break;
} }

View File

@ -801,6 +801,11 @@ void NavigationAgent3D::update_navigation() {
navigation_path_index -= 1; navigation_path_index -= 1;
navigation_finished = true; navigation_finished = true;
target_position_submitted = false; target_position_submitted = false;
if (avoidance_enabled) {
NavigationServer3D::get_singleton()->agent_set_position(agent, agent_parent->get_global_transform().origin);
NavigationServer3D::get_singleton()->agent_set_velocity(agent, Vector3(0.0, 0.0, 0.0));
NavigationServer3D::get_singleton()->agent_set_velocity_forced(agent, Vector3(0.0, 0.0, 0.0));
}
emit_signal(SNAME("navigation_finished")); emit_signal(SNAME("navigation_finished"));
break; break;
} }