diff --git a/Assets/components/enemy.tscn b/Assets/components/enemy.tscn new file mode 100644 index 0000000..09f7883 --- /dev/null +++ b/Assets/components/enemy.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=5 format=3 uid="uid://cadrciw8ywini"] + +[ext_resource type="Script" path="res://Assets/scripts/Enemy.gd" id="1_fdjbh"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_wwg7y"] +albedo_color = Color(1, 0, 0, 1) + +[sub_resource type="CapsuleMesh" id="CapsuleMesh_fhbi7"] +material = SubResource("StandardMaterial3D_wwg7y") + +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_kerfs"] + +[node name="Enemy" type="CharacterBody3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.00193, 0) +script = ExtResource("1_fdjbh") + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +mesh = SubResource("CapsuleMesh_fhbi7") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +shape = SubResource("CapsuleShape3D_kerfs") + +[node name="NavigationAgent3D" type="NavigationAgent3D" parent="."] diff --git a/Assets/scripts/Enemy.gd b/Assets/scripts/Enemy.gd new file mode 100644 index 0000000..bd4fc0a --- /dev/null +++ b/Assets/scripts/Enemy.gd @@ -0,0 +1,26 @@ +extends CharacterBody3D + +@onready var nav_agent = $NavigationAgent3D + +@export var SPEED:float = 3.0 + +var prev_known_location = Vector3(0,0,0) + +func _ready(): + update_target_location(global_transform.origin) + +func _process(delta): + if prev_known_location != GlobalSettings.Player_Last_Location: + prev_known_location = GlobalSettings.Player_Last_Location + update_target_location(GlobalSettings.Player_Last_Location) + +func _physics_process(delta): + var current_location = global_transform.origin + var next_location = nav_agent.get_next_path_position() + var new_velocity = (next_location - current_location).normalized() * SPEED * delta + + velocity = new_velocity + move_and_slide() + +func update_target_location(target_location): + nav_agent.set_target_position(target_location)