30 lines
684 B
GDScript
30 lines
684 B
GDScript
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 == false:
|
|
self.global_position = lerp(global_position, target_position, delta / 0.1)
|
|
|
|
if global_position.distance_to(target_position) < 0.1/1000 and is_target_reached == false:
|
|
|
|
destination_reached.emit()
|
|
|
|
func moveTo(target_pos: Vector3):
|
|
target_position = target_pos
|
|
is_target_reached = false
|
|
|
|
func on_target_reached():
|
|
print("Target Reached")
|
|
is_target_reached = true
|