Ein tieferer Blick auf Feinde

Das 3D-Gamekit enthält 3 vorgefertigte Feinde: Chomper, Spitter und Grenadier.

Sie werden alle durch das EnemyController-Skript gesteuert und jeder hat ein bestimmtes Verhalten (ChomperBehavior, SpitterBehavior und GrenadierBehavior).

Chomper

Chomper ist ein Nahkampffeind, der auf den Spieler zusteuert, wenn er ihn entdeckt, und angreift, wenn er nah genug dran ist.

Die Zeit, um die Verfolgung einzustellen, ist die Zeit (in Sekunden), in der der Spieler aus der Sichtlinie der Chomper herauskommen muss, bevor seine Verfolgung des Spielers beendet und zu seinem ursprünglichen Platz zurückkehrt.

Spitter

Spitter schießt eine explodierende Säure-Spucke auf den Spieler, wenn er entdeckt wird. Wenn der Spieler zu nahe an ihn herantritt und er nicht gerade spuckt, wird er versuchen, wegzulaufen.

Fluchtdistanz: sobald sie weit genug vom Spieler entfernt sind, hören sie auf zu fliehen und setzen den Angriff fort.

Grenadier

Grenadier ist ein härterer, größerer Feind. Er wird Sprenggranaten auf den Spieler werfen, wenn er weit weg ist oder ihn schlagen wenn er sich vor ihm befindet. Schließt oder entfalten seinen temporären Schild bei einer schädlichen Explosion, wenn sich der Spieler in der Nähe, aber nicht vor ihm befindet.

Sie können nur von hinten beschädigt werden, wenn man ihren strahlenden Kern trifft.

Nahkampfstärke: Wenn der Spieler sich der Nahkampfstärke des Grenadiers nähert, wird Grenadier entweder schlagen (wenn der Spieler vorne ist) oder einen Schild einsetzen.

Reichweite: Wenn sich der Spieler in der Nähe des Grenadiers befindet, sich aber noch nicht in Nahkampfreichweite, schießt der Grenadier eine Sprenggranate auf den Spieler. Wenn der Spieler entdeckt wird, aber noch nicht in diesem Bereich ist, bewegt sich der Grenadier, um ihn zu erreichen.

Allgemeine Einstellungen

Alle Feinde haben eine Player Scanner Eigenschaft für ihr jeweiliges Verhalten, mit der sie festlegen können, wie sie den Spieler erkennen können.

Eine Erläuterung der Einstellungen finden Sie in der Dokumentation des TargetScanners.

Sie alle haben auch eine schädliche (Damageable) Komponente, die definiert, wie viel Gesundheit sie haben und wie sie beschädigt werden können (z.B. können Grenadiere nur von hinten beschädigt werden).

Der Speicherort für diese Komponente ist:

Chomper und Spitter: auf dem Wurzelspielobjekt, direkt neben ihren Verhaltensskripten.

Grenadier: auf einem untergeordneten Spielobjekt von Grenadier namens DamageablePart in der Hierarchie.

Szenenansicht Gizmo

Einige dieser Einstellungen können in der Szenenansicht visualisiert werden, wenn ein Feind ausgewählt ist.

Der blaue Kreis stellt den Erkennungsradius (Detection Radius) und -winkel (Angel) des Player Scanners dar. Ein Spieler wird nur dann entdeckt, wenn er innerhalb dieses Kreises ist.

Die kleine gelbe Drahtkugel ist der Höhenversatz des Player Scanner (d.h. wo sich die "Augen" des Scanners befinden). Das System prüft, ob die Sichtlinie zwischen diesem und dem Spieler frei ist.

Der rote Kreis ist der empfindliche, schlagbare Bereich. Der Spieler muss den Gegner in diesem Bereich treffen, um Schaden anzurichten.

Einen Chomper hinzufügen

Lass uns einen Chomper deiner Szene hinzufügen;

  • Gehe im Projekt zu Assets > 3DGameKit > Prefabs > Characters > Enemies > Chomper.
  • Ziehe den Chomper in die Szene.
  • Positioniere ihn irgendwo in der Nähe von Ellen.

Wir können einen sehr großen blauen Bereich sehen, der die Szene bedeckt. Das ist Chomper's Erkennungsradius (Detection Radius), der der Bereich ist, den er sehen kann. Wenn Ellen in dieses Gebiet ist, wird Chomper angreifen. Wir können diese Einstellung anpassen, wenn Chomper in der Hierarchie ausgewählt ist;

  • Im Inspektor lokalisiere die Chompereinstellungen (Chomper Behaviour).
  • Den Erkennungsradius (Detection Radius) setzt du auf 4. Dies kann auch durch schnelles Blättern durch Werte erreicht werden, indem Sie mit der Maus über das Wort Erkennungsradius (Detection Radius) fahren und dann nach links klicken und ziehen, um den Wert schnell zu reduzieren, oder nach rechts, um den Wert zu erhöhen.
  • Drücke Play und laufe auf Chomper zu um in seinen Erkennungsradius (Detection Radius) zu kommen.

Wenn du seinen Erkennungsradius (Detection Radius) betrittst, wird Chomper Ellen erkennen und sein Angriffsverhalten starten, aber er wird auf der Stelle laufen und sich nicht bewegen können.

Das liegt daran, dass wir Chomper's KI nicht gesagt haben, welche Oberfläche begehbar ist. Dazu verwenden wir das NavMesh-System von Unity. Die KI von Chomper wird von der NavMesh Agent Komponente verwaltet. Dies gibt Chomper die Möglichkeit, auf den von uns gesetzten Oberflächen zu gehen, Hindernisse und andere Chomper, Spitters und Grenadiere zu umgehen, während er durch die Welt navigiert.

Wir müssen keine dieser Einstellungen ändern, da Chomper und die anderen Feinde bereits so eingestellt sind, dass sie sich auf eine bestimmte Weise verhalten und navigieren können.

Lasst uns den Boden so einrichten, dass er für Feinde begehbar ist, indem wir eine NavMesh-Oberfläche hinzufügen;

  • Wähle in der Hierarchie die Plane (den Boden) aus.
  • Am Ende des Inspektors drückst du auf Komponente hinzufügen (Add Component).
  • Suche nach NavMeshSurface in die Szene.
  • Drücke Enter um das NavMeshSurface der Plane hinzuzufügen.
  • In der NavMeshSurface setze Agent Type auf Chomper.

Dadurch wird der Oberfläche mitgeteilt, welcher Agent auf ihr laufen kann. Beachte, dass nur Chomper in dieser Liste erscheint und es keinen Spitter oder Grenadier gibt. Das liegt daran, dass alle Feinde die Agenteneinstellungen von Chomper verwenden.

  • Für die Include Layers wählst du aus dem Dropdown-Menue zuerst Nichts (Nothing) aus.
  • Nun wird für Include Layers aus dem Dropdown-Menue als nächstes Umgebung (Environment) und Pflanzen (Vegetation) ausgewählt.

Dies ist ein schneller Weg, um viele Ebenen zu deaktivieren und die gewünschten neu auszuwählen.

  • Drücke auf den Knopf Backen (Bake).

Dies wird ein NavMesh in deiner Szene backen und die meisten Oberflächen für deine Feinde begehbar machen. Wir können sehen, wo unsere Feinde in der Szenenansicht gehen können, wie der hellblaue Untergrund zeigt.

Lücken in der NavMesh-Oberfläche (hellblaue Markierungsbereiche) bedeuten, dass die Feinde in diesen Bereichen nicht laufen können.

Hier sehen wir Lücken kurz vor unseren Wänden. Das bedeutet, dass Feinde nicht durch unsere Mauern oder Türen gehen können, die wir eingerichtet haben.

Lass uns unsere Chomper testen, indem wir auf Play drücken. Jetzt können wir zum Chomper laufen und dieser wiederum wird auf uns zukommen und angreifen. Wenn Sie etwas von der Chomper weglaufen, wird sein NavMesh-Agent die NavMesh-Oberfläche nutzen, um durch die Welt zu navigieren und dich zu verfolgen.

Wenn Sie weitere Chompers oder andere Feinde in der Szene hinzufügen, werden sie die gleiche NavMesh-Oberfläche verwenden, es besteht keine Notwendigkeit, dies für neue Gegner zu wiederholen.

Wenn du nun neue Teile zu deiner Ebene (Plane) hinzufügen oder die Position von Objekten in deiner Szene ändern möchtest, musst du dein NavMesh Surface neu aufbauen, indem du zurück zur Ebene gehst und im NavMesh Surface Skript auf Backen (Bake) klickst.

Einen Spitter hinzufügen

  • Füge aus 3DGamekit > Prefabs > Characters > Enemies > Spitter deiner Szene hinzu.

Wenn Sie sich den Inspektor ansehen, werden Sie feststellen, dass der Spitter dem Chomper sehr ähnlich ist.

Der Spitter ist eine Fernkampfklasse von Feinden, die vor Ellen davonlaufen wird, wenn sie zu nah ist, indem sie ihre Eigenschaft Fluchtdistanz (Fleeing Distance) verwendet, um zu bestimmen, wann er weglaufen soll, bevor er versucht anzugreifen. Es benutzt dann die Distanzwaffe (Range Weapon), um Säure auf Ellen zu schießen.

Tipp: Wenn die Fluchtdistanz (Fleeing Distance) größer als der Erkennungsradius (Detection Radius) ist, flieht sie nur, wenn sie erkannt wird, und das kann zu einem kontinuierlichen Fluchtmuster führen.

Im Idealfall sollten sie weiter weg anfangen, um ihm eine bessere Gelegenheit zum Angriff zu geben und gegen Ellen eindrucksvoller zu sein. Wenn du den Spitter dazu bringen willst, die Umgebung zu berücksichtigen, dann musst du View Blocker Layer Mask von DoNotDraw auf Umgebung (Environment) ändern.

In unserer Szene haben wir die Spitters im höheren Bereich hinzugefügt, um den Spitters einen Vorteil gegenüber Ellen zu verschaffen, wenn sie auf der beweglichen Plattform reist, um es für den Spieler schwieriger zu machen, sie zu erledigen.

Spiele die Szene ab, nachdem du sie hinzugefügt hast, um ihr Verhalten zu sehen, und versuche verschiedene Erkennungsradius (Detection Radius) und Fluchtdistanz (Fleeing Distance).

Einen Grenadier hinzufügen

  • Füge aus 3DGamekit > Prefabs > Characters > Enemies > Grenadier deiner Szene hinzu.

Der Grenadier ist ein Bossfeind und hat mehr Details zu beachten, wenn man damit arbeitet. Bei der Auswahl in der Szene wird der Schadensradius auf hinten eingestellt, nur um den Spieler zu zwingen, seinen Kern von hinten zu treffen.

Das Verhaltensskript ist Chomper und Spitter sehr ähnlich, kombiniert aber Nahkampf und erweitert die Eigenschaften für seine verschiedenen Funktionen: Faustwaffe (Fist Weapon), Granatwerfer (Grenade Launcher) und Schild (Shield).

Um die beschädigbare Komponente zu sehen, erweitere den Grenadier in der Hierarchie und finde DamageablePart.

Dies zeigt das beschädigungsfähige Skript und den Inhalt in Bezug auf die Gesundheit, wie lange es unverwundbar ist und die betroffenen Bereiche.

Im Ereignisbereich des beschädigungsfähigen Skript gibt es Funktionen, die mit dem Grenadier im Tod verbunden sind, Partikel bei Treffer anzeigen und seine Schwachstelle bei Treffer zurücksetzen.

3D Game Kit

Erste Schritte
  1. Einführung
  2. Neue Szene
  3. Bewegliche Plattform
  4. Öffnen einer Tür
  5. Feinde
  6. Beschädigung durch Objekte
  7. Dekorieren
  8. Teleportieren des Spielers
  9. Spaß haben
Rundgang
  1. Über die Vorgehensweise
  2. Arbeiten mit ProBuilder
  3. Herstellung eines Säurebades
  4. Vertex-Färbung mit Polybrush
  5. Nutzung von Umgebungsvorgaben
  6. Fels- und Vegetationsmaler
  7. Organisieren der Szene
  8. Spielgrenzen
  9. Intensiv bewegl. Plattformen
  10. Zähler und Schalter
  11. Ein tieferer Blick auf Feinde
  12. Erstellen einer Falle
  13. Wiederbelebungspunkt
  14. Waffenaufnahme
  15. Wiederherstellung der Gesundheit
  16. Szenenteleportation
Referenzhandbuch für das Spiel-Kit
  1. Einführung in die 3D-Anleitung
  2. 3D Ellen
  3. Welt erstellen
  4. Objekte im 3D Spiel-Kit
  5. Feindsteuerung
  6. Schadenssystem im 3D Spiel-Kit
  7. Zielscanner
  8. Spielkomponenten
  9. Spielbefehl Handhabungsuntertypen