extends Node class_name FloorMover @export var navigation_agent : NavigationAgent3D @export var move_target : CharacterBody3D @export_category("Velocity Settings") @export var max_speed : float @onready var gravity : float = ProjectSettings.get_setting("physics/3d/default_gravity") @onready var gravity_vector : Vector3 = ProjectSettings.get_setting("physics/3d/default_gravity_vector") func _physics_process(delta: float) -> void: if navigation_agent.is_target_reachable() and move_target.is_on_floor(): var pos = navigation_agent.get_next_path_position() move_target.look_at(pos) move_target.velocity = move_target.global_position.direction_to(pos) * max_speed if(move_target.is_on_floor() == false): move_target.velocity -= gravity_vector * gravity_vector move_target.move_and_slide()