21 lines
628 B
GDScript
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()
|