extends Node class_name FloorMover @export var navigation_agent : NavigationAgent3D @export var move_target : Node3D @export_category("Velocity Settings") @export var max_speed : float @export_range(0,720,0.1,"or_greater","radians_as_degrees","exp") var rotation_speed : float func _physics_process(delta: float) -> void: if navigation_agent.is_navigation_finished(): return if navigation_agent.is_target_reachable(): var direction_to_next = (navigation_agent.get_next_path_position() - move_target.global_position).normalized() var delta_angle = clamp(move_target.basis.z.signed_angle_to(direction_to_next,Vector3.UP),-rotation_speed,rotation_speed) move_target.rotation.y += delta_angle move_target.global_position += move_target.basis.z * max_speed * delta