Files

21 lines
628 B
GDScript

extends CharacterBody3D
const SPEED := 100.0
const CHASE_RANGE := 8.0
@export var target : CharacterBody3D
@onready var nav_agent: NavigationAgent3D = $nav_agent
func _process(delta: float) -> void:
velocity = Vector3.ZERO
if global_position.distance_to(target.global_position) < CHASE_RANGE:
nav_agent.target_position = target.global_transform.origin
var next_nav_point = nav_agent.get_next_path_position()
velocity = (next_nav_point - global_transform.origin).normalized() * SPEED * delta
look_at(Vector3(target.global_position.x, global_position.y, target.global_position.z), Vector3.UP)
move_and_slide()