From 872280d31f7d4d8cbcb3089f1e889703e5315f12 Mon Sep 17 00:00:00 2001 From: karl Date: Sun, 26 Jan 2020 17:57:39 +0100 Subject: [PATCH] Move some movement logic from PathNavigator to NPC --- Characters/NPC.gd | 8 ++++++++ Characters/Util/PathNavigatorForNPC.gd | 3 +-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Characters/NPC.gd b/Characters/NPC.gd index 5af2668..404cad0 100644 --- a/Characters/NPC.gd +++ b/Characters/NPC.gd @@ -3,6 +3,7 @@ class_name NPC export(float) var turn_speed = 2.5 +export(float) var speed = 8 var current_target var current_look_target @@ -20,6 +21,13 @@ func _process(delta): if diff.length() > 0.1: look_at(transform.origin + target, Vector3.UP) + + if current_target: + # Move towards the current goal + var direction_normalized: Vector3 = (current_target - transform.origin).normalized() + + look_towards(direction_normalized) + move_towards(direction_normalized * speed) func set_position(position: Vector3): diff --git a/Characters/Util/PathNavigatorForNPC.gd b/Characters/Util/PathNavigatorForNPC.gd index bbdf215..1ecd85f 100644 --- a/Characters/Util/PathNavigatorForNPC.gd +++ b/Characters/Util/PathNavigatorForNPC.gd @@ -7,7 +7,6 @@ var _current_path_index var _arrived_distance_threshold = 0.1 -export(float) var speed = 8 export(NodePath) var body_nodepath var navigation: Navigation @@ -48,7 +47,7 @@ func _process(delta): var direction_normalized: Vector3 = (current_goal - _get_body_position()).normalized() body.look_towards(direction_normalized) - body.move_towards(direction_normalized * speed) + body.move_towards(direction_normalized * body.speed) # Returns the point we should currently be moving towards