5. Enemies

CreΓ«er enemies die naar de speler kijken en schieten met herbruikbare components

Overzicht

In dit hoofdstuk maak je een enemy die automatisch naar de speler kijkt en schiet. Je leert hoe je code hergebruikt door bestaande scripts (Target.cs en Railgun.cs) toe te passen op een nieuwe context. De enemy gebruikt compositie - je bouwt complex gedrag door simpele, herbruikbare componenten te combineren.

Enemy model collider

Maak een enemy om op te schieten. Gebruik het enemy-flying.glb model uit de assets, precies zoals je eerder de Target hebt gemaakt in Chapter 4. Voor je daarmee van start gaat, moet je er eerst voor zorgen dat je de enemy kunt raken. Gebruik een RigidBody3D zodat de enemy realistisch reageert op projectiles - het kan kantelen, vallen of omvallen wanneer het geraakt wordt.

circle-check

Enemy scene setup

Nu ons enemy model een collider heeft, kun je een eigen Enemy scene maken. Het enemy-flying model heeft een geneste structuur met een RigidBody3D genaamd "torso" die we gaan gebruiken voor destruction.

circle-check

Je scene hierarchy zou er nu zo uit moeten zien:

Target script herbruiken

De enemy moet vernietigd kunnen worden wanneer hij geraakt wordt door een projectile. Dit heb je al geΓ―mplementeerd in Chapter 4! Het Target.cs script werkt perfect voor de enemy - het detecteert hits en vernietigt de parent node.

Het character-enemy model heeft een torso RigidBody3D - dit is de physics body die door projectiles geraakt kan worden. Voeg Target.cs toe aan deze torso-node.

circle-check

Railgun script herbruiken

Hergebruik nu het weapon-systeem! In plaats van nieuwe shooting code te schrijven, gebruik je gewoon de bestaande blaster nodes in het model. Het enemy-flying model heeft al twee blaster visual nodes (blaster-left en blaster-right). Voeg het Railgun.cs-script toe aan deze nodes - zo krijgt de enemy exact dezelfde shooting mechanics als de speler!

circle-check

Weapon components toevoegen

Elk weapon heeft dezelfde components nodig als de player's railgun: een Timer, een Muzzle marker, en een weapon mount point.

circle-check

Je scene hierarchy is nu:

Enemy aimraycast toevoegen

Net zoals de speler, heeft de enemy een RayCast3D nodig om te bepalen waar zijn weapons naar moeten schieten. Deze raycast wijst altijd in de richting waarin de enemy kijkt.

circle-check

Je scene hierarchy is nu:

Configure enemy railguns

De Enemy's Railguns hebben dezelfde configuration nodig als de Player's Railgun: een weapon mount point, muzzle marker, en fire rate timer.

Voor de weapon mount, gebruiken we gewoon de blaster nodes zelf.

circle-check

Enemy ai script

Nu maken we het Enemy script dat de AI afhandelt. De enemy moet:

  1. Naar de speler kijken (LookAt)

  2. Het Shoot signal uitzenden met de raycast (net zoals Player)

circle-check

Connect enemy shoot signal

Net zoals je in Chapter 3 de Player's Shoot signal hebt verbonden met de Railgun, moet je nu het Shoot-signaal van de Enemy verbinden met beide railgun weapons.

circle-check

Add enemy to main scene

Voeg nu de Enemy toe aan het level en test!

circle-check

Complete scripts

chevron-rightHet volledige Enemy scripthashtag

Enemy.cs

Laatst bijgewerkt