Files
fps_project_1/scripts/NPCIdle.gd
2025-05-12 11:39:14 -05:00

32 lines
974 B
GDScript

extends CharacterState
class_name NPCIdle
@export var wander_distance_max : float = 15.0
@export var scan_time : float = 3
func Enter():
get_new_wander_point()
func Update(delta):
update_look_target()
rotate_to_face3D(character.head,look_target,Vector3.ZERO,delta,head_turn_speed)
#if navigation is finished get new point, otherwise continue on path
if character.nav_agent.is_navigation_finished():
get_new_wander_point()
else:
move_to_nav_point(delta)
func update_look_target():
var player = get_tree().current_scene.player
if character.global_position.distance_to(player.global_position) < 5:
look_target = player
else:
look_target = move_target
func get_new_wander_point():
var x = randf_range(-wander_distance_max,wander_distance_max)
var z = randf_range(-wander_distance_max,wander_distance_max)
move_target = character.global_position + Vector3(x,0,z)
character.nav_agent.set_target_position(move_target)
print("MOVE TARGET : ",move_target)