42 lines
1005 B
GDScript
42 lines
1005 B
GDScript
extends CharacterBody3D
|
|
|
|
var nav_agent: NavigationAgent3D
|
|
|
|
var shirt_shader: ShaderMaterial
|
|
var meshI: MeshInstance3D
|
|
|
|
var start_pos: Vector3
|
|
|
|
func _ready() -> void:
|
|
nav_agent = $NavigationAgent3D
|
|
meshI = $MeshInstance3D
|
|
shirt_shader = meshI.get_surface_override_material(1)
|
|
|
|
Global.object_placed.connect(_on_object_placed)
|
|
|
|
set_random_shirt()
|
|
|
|
start_pos = global_position
|
|
#nav_agent.target_position = Vector3(-15.955,3.486,-58.942)
|
|
|
|
func _physics_process(delta: float) -> void:
|
|
var new_velocity = global_position.direction_to(nav_agent.get_next_path_position()) * 5.0
|
|
look_at(nav_agent.target_position)
|
|
velocity = new_velocity
|
|
move_and_slide()
|
|
|
|
|
|
|
|
func _on_object_placed():
|
|
nav_agent.target_position = Vector3(-14.305,3.486,-59.836)
|
|
|
|
|
|
func set_random_shirt():
|
|
var new_shirt_color = Vector3(randf(),randf(),randf())
|
|
shirt_shader.set_shader_parameter("shirt_color", new_shirt_color)
|
|
pass
|
|
|
|
|
|
func _on_navigation_agent_3d_navigation_finished() -> void:
|
|
nav_agent.target_position = start_pos
|