Spielkomponenten

Befehlssystem

Das Game Kit enthält ein Befehlssystem, um Gameplay-Elemente miteinander zu verbinden. Es funktioniert mit drei Schlüsselskripten: SendGameCommand, GameCommandReceive und GameCommandHandler.

Das SendGameCommand-Skript entscheidet, wann etwas passieren soll - zum Beispiel, wenn der Charakter auf eine Druckplatte tritt. Anschließend sendet er einen'Befehl', der einen bestimmten Typ hat, wie z.B. Aktivieren, Schließen, Stoppen.

Dieser Befehl wird dann vom GameCommandReceiver-Skript empfangen. Dieses Skript enthält eine Sammlung verschiedener Aktionen, die für einen bestimmten Befehl, den es erhält, durchgeführt werden sollten. Wenn Sie beispielsweise einen Aktivierungsbefehl empfangen, führt er eine Aktion an drei Handlern durch, die an diesem speziellen Befehl teilgenommen haben.

Der GameCommandHandler ist der Ort, an dem die Ergebnisse des Befehls liegen. Es kann so etwas wie das Einschalten eines Spielobjekts oder das Abspielen eines Sounds bewirken. Es ist wichtig, dass sich das GameCommandHandler-Skript auf dem gleichen Spielobjekt befindet wie das GameCommandReceiver-Skript für seine Reaktion. Auf diese Weise registriert der GameCommandReceiver sein Anteil an einem bestimmten Befehl.

Es gibt mehrere Dinge, die dazu führen können, dass ein Empfehlung gesendet wird, und so gibt es mehrere Klassen, die von SendGameCommand erben, um diese Fälle abzudecken. Dazu gehören: SendOnBecameInvisible, SendOnBecameVisible, SendOnCollisionEnter, SendOnCollisionExit, SendOnCollisionStay, SendOnTriggerEnter, SendOnTriggerExit und SendOnTriggerStay.

Es gibt auch mehrere Ergebnisse, die durch einen Befehl verursacht werden können, und so gibt es mehrere Klassen, die vom GameCommandHandler erben. Zu diesen Klassen gehören: MovingPlatform, TriggerUnityEvent, ToggleGameObjectActive, SwitchMaterial, StartPlayableDirector, SimpleTransformer, SimpleRotator, SimpleTranslator, SetGameObjectActive, SetAnimatorTrigger, RespawnPlayer, PlaySound, PlayAnimation, ParticleSystemEmit und GameplayCounter. Beachten Sie, dass GameCommandHandler abstrakt ist und daher nie als solche existiert, sondern als eine der aufgeführten Vererbungsklassen.

Wenn du zum Beispiel möchtest, dass sich eine Tür öffnet, wenn Ellen auf einem Druckpolster steht, verwende ein SendOnTriggerEnter-Skript, um einen Öffnungsbefehl an ein GameCommandReceiver-Skript zu senden. Die Tür sollte animiert sein und beim Öffnen einen Ton abspielen, daher ist es sinnvoll, ein SetAnimatorTrigger-Skript und ein PlaySound-Skript zu haben, die den GameCommandReceiver aufnimmt.

Senden eines Befehls (Send Game Command)

Dies ist die Basisklasse für die Generierung von Befehlen. Als Beispiel verwendet das DoorHuge-Fertigteil diese Klasse, um einen Grenadier zu aktivieren (öffnen Sie die Assets > 3DGamekit > Szenen > Level1-Szene und wählen Sie Level01Gameplay > DoorHuge im Hierarchiefenster).

  • Interaktionstyp (Interaction Type): Standardeinstellung: Keine Identifiziert die Art des zu sendenden Befehls. Dies dient nur der Beschriftung und hat keinen Einfluss auf die Endwirkung des Befehls (ein Befehl zum Öffnen einer Tür könnte genauso einfach den Typ Erzeugen als Öffnen) verwenden, solange der Handler so eingestellt ist, dass er auf Erzeugen reagiert. Die verschiedenen Typen sind: Keine (None), Aktivieren (Activate), Deaktivieren (Deaktivate), Öffnen (Open), Schließen (Close), Erzeugen (Spawn), Zerstören (Destroy), Starten (Start), Stoppen (Stop).
  • Interaktives Objekt: Dies ist der Game Command Receiver, der die verschiedenen Bearbeiter verschiedener Befehle sammelt.
  • Ein Schuss (One Shot): Standardeinstellung: falsch Ob dieser Befehl mehr als einmal gesendet werden kann oder nicht.
  • Abkühlung (Cool Down): Standardeinstellung: 1 Wenn es sich nicht um einen Ein Schuss (One Shot)-Befehl handelt, bestimmt dies, wie lange, bis der Befehl erneut gesendet werden kann.
  • Audio senden (On Send Audio): Dies kann optional auf eine Audioquelle eingestellt werden, wie z.B. das Senden des Befehls zum Abspielen eines Audioclips. Sie können diesem Slot jedes Spielobjekt zuweisen, das eine Audio Source Komponente hat.
  • Audio-Verzögerung (Audio Delay): Standardeinstellung: 0 Wenn unter On Send Audio eine Audioquelle eingestellt ist, wird festgelegt, wie lange nach dem Senden des Befehls das Audio abgespielt wird.

Spielbefehlsempfänger (Game Command Receiver)

Dieses Skript enthält eine Sammlung von Spielbefehlsarten und die Handler, die für jeden von ihnen aufpassen. Es ist das Organisationssystem, das die gesendeten und gehandhabten Befehle verbindet.

Du musst für dieses Skript keine Felder setzen. Die Befehle, die an diesen Empfänger gesendet werden, werden von den verschiedenen Send Game Command Skripten gesteuert, und die Handler, die auf diese Befehle achten, werden von den verschiedenen Game Command Handler Skripten gesteuert.

Spielbefehlshandhabung (Game Command Handler)

Dies ist die abstrakte Basisklasse für die Behandlung von Befehlen. Da die Klasse abstrakt ist, existiert sie nicht in ihrer Grundform, sondern als eine ihrer Unterklassen. Allerdings haben alle Game Command Handlers die folgenden Felder gemeinsam:

  • Interaktionstyp (Interaction Type): Standardeinstellung: Keine Identifiziert die Art des zu sendenden Befehls. Dies dient nur der Beschriftung und hat keinen Einfluss auf die Endwirkung des Befehls (ein Befehl zum Öffnen einer Tür könnte genauso einfach den Typ Erzeugen als Öffnen) verwenden, solange der Handler so eingestellt ist, dass er auf Erzeugen reagiert. Die verschiedenen Typen sind: Keine (None), Aktivieren (Activate), Deaktivieren (Deaktivate), Öffnen (Open), Schließen (Close), Erzeugen (Spawn), Zerstören (Destroy), Starten (Start), Stoppen (Stop).
  • Ein Schuss (Is One Shot): Standardeinstellung: falsch Ob dieser Befehl mehr als einmal gesendet werden kann oder nicht.
  • Abkühlung (Cool Down): Standardeinstellung: 0 Wenn es sich nicht um einen Ein Schuss (One Shot)-Befehl handelt, bestimmt dies, wie lange, bis der Befehl erneut gesendet werden kann.
  • Startverzögerung (Start Delay): Standardeinstellung: 0 Legt fest, wie lange nach dem Empfangen eines Befehls, dass der Befehl behandelt wird.

Unterabschnitte (Send Game Command Sub-types)

Die folgenden Unterabschnitte sind Klassen, die Sie anstelle des Skripts Send Game Command verwenden können. Jede Klasse enthält die Felder Send Game Command, und einige haben zusätzliche Felder.

Senden wenn unsichtbar (Send On Became Invisible)

Wenn ein Spielobjekt in keiner Kamera der Szene mehr sichtbar ist, wird diese Komponente aktiviert und sendet einen Befehl. Dieses Skript sendet seinen Befehl aus dem OnBecameInvisible-Aufruf der Klasse MonoBehaviour. Dieses Skript hat keine zusätzlichen Felder.

Senden wenn sichtbar (Send On Became Visible)

Wenn ein Spielobjekt in einer beliebigen Kamera in der Szene sichtbar wird, wird diese Komponente aktiviert und sendet einen Befehl. Dieses Skript sendet seinen Befehl aus dem OnBecameVisible-Aufruf der Klasse MonoBehaviour. Dieses Skript hat keine zusätzlichen Felder.

Kollisionserfassung (Send On Collision Enter)

Wenn ein Spielobjekt eine Kollision mit einem anderen Objekt hat, das sich in der/den angegebenen Ebene(n) befindet, wird diese Komponente aktiviert und sendet einen Befehl. Dieses Skript sendet seinen Befehl aus dem OnCollisionEnter-Aufruf der Klasse MonoBehaviour.

  • Ebenen: Eine LayerMask für die Ebenen von Spielobjekten, die für die Kollision zählen, um den Befehl zu senden.

Kollisionsende (Send On Collision Exit)

Wenn ein Spielobjekt eine Kollision mit einem anderen Objekt hat, das sich in der/den angegebenen Ebene(n) befindet, und dann diese Kollision beendet, aktiviert diese Komponente und sendet einen Befehl. Dieses Skript sendet seinen Befehl aus dem OnCollisionExit-Aufruf der Klasse MonoBehaviour.

  • Ebenen: Eine LayerMask für die Ebenen von Spielobjekten, die eine Kollision verursachen kann, die die Komponente veranlasst, einen Befehl zu senden.

Kollisionssperre (Send On Collision Stay)

Wenn dieses Spielobjekt eine Kollision mit einem anderen Objekt aufweist, das sich in der/den angegebenen Ebene(n) befindet, wird diese Komponente aktiviert, nachdem die SendOnCollisionEnter-Komponente aktiviert wurde und sich das Objekt noch in einem Kollisionszustand befindet. Dieses Skript sendet seinen Befehl aus dem OnCollisionStay-Aufruf der Klasse MonoBehaviour.

  • Ebenen: Eine LayerMask für die Ebenen von Spielobjekten, die eine Kollision verursachen kann, die die Komponente veranlasst, einen Befehl zu senden.

Sendeauslöser Eingang (Send On Trigger Enter)

Wenn diese Komponente an einen Triggercollider angehängt ist, wird sie bei einer Kollision mit einem anderen Objekt, das sich in der/den angegebenen Ebene(n) befindet, aktiviert und sendet einen Befehl. Dieses Skript sendet seinen Befehl aus dem OnTriggerEnter-Aufruf der Klasse MonoBehaviour.

Das folgende Bild zeigt ein Druckpolster mit einem Würfelauslöser. Das Send Open zeigt den Befehl, der gesendet wird, und die weißen Pfeile führen zum Zielobjekt.

  • Ebenen: Eine LayerMask für die Ebenen von Spielobjekten, die eine Kollision verursachen kann, die die Komponente veranlasst, einen Befehl zu senden.

Sendeauslöser Ausgang (Send On Trigger Exit)

Wenn diese Komponente an einen Würfelauslöser angeschlossen ist, wird sie bei einer Kollision mit einem anderen Objekt, das sich in der/den angegebenen Ebene(n) befindet, aktiviert und sendet einen Befehl, wenn das Spielobjekt den Kollisionsbereich verlässt. Dieses Skript sendet seinen Befehl aus dem OnTriggerExit-Aufruf der Klasse MonoBehaviour.

  • Ebenen: Eine LayerMask für die Ebenen von Spielobjekten, die eine Kollision verursachen kann, die die Komponente veranlasst, einen Befehl zu senden.

Sendeauslöser Aufenthalt (Send On Trigger Stay)

Wenn diese Komponente an einen Würfelauslöser angehängt ist, wird sie bei einer Kollision mit einem anderen Objekt, das sich in der/den angegebenen Ebene(n) befindet, aktiviert und sendet einen Befehl jeden Frame, in dem sich das Spielobjekt innerhalb des Kollisionsbereichs befindet. Dieses Skript sendet seinen Befehl aus dem OnTriggerStay-Aufruf der Klasse MonoBehaviour.

  • Ebenen: Eine LayerMask für die Ebenen von Spielobjekten, die für das Auslösungsereignis zählen, um den Befehl zu senden.

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