gravity affected agents
This commit is contained in:
parent
eec69524ee
commit
1cd5123a08
3 changed files with 22 additions and 22 deletions
|
@ -3,16 +3,20 @@ extends Node
|
|||
class_name FloorMover
|
||||
|
||||
@export var navigation_agent : NavigationAgent3D
|
||||
@export var move_target : Node3D
|
||||
@export var move_target : CharacterBody3D
|
||||
|
||||
@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
|
||||
|
||||
@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_navigation_finished(): return
|
||||
|
||||
if navigation_agent.is_target_reachable():
|
||||
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.global_position += move_target.global_position.direction_to(pos) * max_speed * delta
|
||||
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()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue