DungeonCrawler/enemy.tscn
Andre 12b70c7498 Overworld, Dungeon-System, Goblin-Modell, NavMesh-Pathfinding, Kamera-Kollision
- Overworld: Gras-Terrain mit Noise-Shader, Berg, Dungeon-Tor, Felsen, Bäume
- Dungeon: Prozedurale Generierung (Grid, Räume, L-Gänge), Multi-Ebenen mit Persistenz
- Portal-System: Blau (zurück/raus), Rot (tiefer), Auswahl-UI ab Ebene 2+
- Gegner: Goblin-Modell + Animationen statt Warrior, Capsule angepasst
- NavMesh: Manuell gebautes NavigationMesh im Dungeon mit Wand-Margin und shared Vertices
- Pathfinding: Gegner nutzen NavigationAgent3D, laufen um Wände herum
- Leash-System: Gegner verlieren Aggro ab 30 Einheiten vom Spawn
- Kamera-Kollision: Raycast verhindert Durchsehen durch Wände, ignoriert Gegner
- Respawn-Timer auf 60s, Death-Timer auf 10s erhöht
- Dokumentation aktualisiert (Dungeon, NavMesh, Goblin, Kamera)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 01:51:07 +01:00

29 lines
1.1 KiB
Text

[gd_scene format=3 uid="uid://cvojaeanxugfj"]
[ext_resource type="Script" uid="uid://gaqwoakxyhet" path="res://enemy.gd" id="1_enemy"]
[ext_resource type="PackedScene" path="res://assets/Goblin+Animation/goblin_d_shareyko.fbx" id="2_model"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_7k104"]
radius = 0.35
height = 1.4
[node name="Enemy" type="CharacterBody3D" unique_id=393882142]
script = ExtResource("1_enemy")
[node name="Model" parent="." unique_id=842107644 instance=ExtResource("2_model")]
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=1531674298]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.7, 0)
shape = SubResource("CapsuleShape3D_7k104")
[node name="NavigationAgent3D" type="NavigationAgent3D" parent="." unique_id=838601477]
[node name="HealthDisplay" type="Node3D" parent="." unique_id=1341862509]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.6, 0)
[node name="Label3D" type="Label3D" parent="HealthDisplay" unique_id=80852959]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.1362207, 0)
pixel_size = 0.01
text = "50 / 50"
font_size = 24
outline_size = 8