red_dragon_pon/base/scripts/enemies/floor_mover.gd
2025-07-27 21:29:43 +05:00

22 lines
807 B
GDScript

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()