deposit bot head looks at player
This commit is contained in:
602
deposit_bot.tscn
602
deposit_bot.tscn
File diff suppressed because one or more lines are too long
@@ -4,7 +4,7 @@ class_name CharacterState
|
|||||||
@export var character : CharacterBody3D
|
@export var character : CharacterBody3D
|
||||||
@export var move_speed : float = 3
|
@export var move_speed : float = 3
|
||||||
@export var body_turn_speed : float = 3
|
@export var body_turn_speed : float = 3
|
||||||
@export var turret_speed : float = 6.0
|
@export var head_turn_speed : float = 6.0
|
||||||
@export var can_see : bool = true # indicates whether the character is able to see things in the state
|
@export var can_see : bool = true # indicates whether the character is able to see things in the state
|
||||||
@export var poi_investigate : bool = false
|
@export var poi_investigate : bool = false
|
||||||
@export var poi_change_to_search : bool = false
|
@export var poi_change_to_search : bool = false
|
||||||
|
|||||||
@@ -8,12 +8,21 @@ func Enter():
|
|||||||
get_new_wander_point()
|
get_new_wander_point()
|
||||||
|
|
||||||
func Update(delta):
|
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 navigation is finished get new point, otherwise continue on path
|
||||||
if character.nav_agent.is_navigation_finished():
|
if character.nav_agent.is_navigation_finished():
|
||||||
get_new_wander_point()
|
get_new_wander_point()
|
||||||
else:
|
else:
|
||||||
move_to_nav_point(delta)
|
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():
|
func get_new_wander_point():
|
||||||
var x = randf_range(-wander_distance_max,wander_distance_max)
|
var x = randf_range(-wander_distance_max,wander_distance_max)
|
||||||
var z = randf_range(-wander_distance_max,wander_distance_max)
|
var z = randf_range(-wander_distance_max,wander_distance_max)
|
||||||
|
|||||||
@@ -2,7 +2,8 @@ extends CharacterBody3D
|
|||||||
|
|
||||||
@export var state_machine : StateMachine
|
@export var state_machine : StateMachine
|
||||||
@export var nav_agent : NavigationAgent3D
|
@export var nav_agent : NavigationAgent3D
|
||||||
|
@export var head : Node3D
|
||||||
|
@onready var player = get_tree().current_scene.player
|
||||||
|
|
||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
move_and_slide()
|
move_and_slide()
|
||||||
|
|||||||
Reference in New Issue
Block a user