diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2021-04-27 13:34:48 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-27 13:34:48 +0200 |
commit | 3a0cfd3d85859da22f5b2e0a1c2800f18e9687aa (patch) | |
tree | c7c4507f5a366ea7b5d18dae9a4bd994c381ed6b /scene/2d | |
parent | 3dfb740a200019021accdb888383f297237763cc (diff) | |
parent | 0b87cb5e3d75a8967fe85e5fc4afe150b3c810a2 (diff) | |
download | redot-engine-3a0cfd3d85859da22f5b2e0a1c2800f18e9687aa.tar.gz |
Merge pull request #47960 from smix8/issue_47334_navagent2d_target_reached
Diffstat (limited to 'scene/2d')
-rw-r--r-- | scene/2d/navigation_agent_2d.cpp | 17 | ||||
-rw-r--r-- | scene/2d/navigation_agent_2d.h | 1 |
2 files changed, 12 insertions, 6 deletions
diff --git a/scene/2d/navigation_agent_2d.cpp b/scene/2d/navigation_agent_2d.cpp index 3f8201b559..f9cbdbf377 100644 --- a/scene/2d/navigation_agent_2d.cpp +++ b/scene/2d/navigation_agent_2d.cpp @@ -104,12 +104,7 @@ void NavigationAgent2D::_notification(int p_what) { case NOTIFICATION_INTERNAL_PHYSICS_PROCESS: { if (agent_parent) { NavigationServer2D::get_singleton()->agent_set_position(agent, agent_parent->get_global_transform().get_origin()); - if (!target_reached) { - if (distance_to_target() < target_desired_distance) { - emit_signal("target_reached"); - target_reached = true; - } - } + _check_distance_to_target(); } } break; } @@ -305,6 +300,7 @@ void NavigationAgent2D::update_navigation() { while (o.distance_to(navigation_path[nav_path_index]) < target_desired_distance) { nav_path_index += 1; if (nav_path_index == navigation_path.size()) { + _check_distance_to_target(); nav_path_index -= 1; navigation_finished = true; emit_signal("navigation_finished"); @@ -313,3 +309,12 @@ void NavigationAgent2D::update_navigation() { } } } + +void NavigationAgent2D::_check_distance_to_target() { + if (!target_reached) { + if (distance_to_target() < target_desired_distance) { + emit_signal("target_reached"); + target_reached = true; + } + } +} diff --git a/scene/2d/navigation_agent_2d.h b/scene/2d/navigation_agent_2d.h index 138ba3bc64..234cad333f 100644 --- a/scene/2d/navigation_agent_2d.h +++ b/scene/2d/navigation_agent_2d.h @@ -140,6 +140,7 @@ public: private: void update_navigation(); + void _check_distance_to_target(); }; #endif |