extends Node3D signal destination_reached var is_live: bool = false var is_target_reached: bool = true var target_position: Vector3 func _ready() -> void: target_position = Vector3.ZERO destination_reached.connect(on_target_reached) func _process(delta: float) -> void: if !is_target_reached: self.global_position = lerp(global_position, target_position, delta / 0.1) if (global_position.length() - target_position.length() ) == 0.0: destination_reached.emit() func moveTo(target_pos: Vector3): target_position = target_pos is_target_reached = false func on_target_reached(): is_target_reached = true