SceneLinkedSMB

SceneLinkedSMB ist eine Klasse, die die Funktionsweise von StateMachineBehaviours erweitert. Es ermöglicht das Verhalten bei Zuständen in der Animator-Zustandsmaschine, um eine Referenz auf das MonoBehaviour zu erhalten. Obwohl SceneLinkedSMBs überall dort eingesetzt werden können, wo Sie auf ein bestimmtes MonoBehaviour verweisen müssen, wurden sie mit der Idee entwickelt, Logik und Funktionalität zu trennen. Eine Animator-Steuerung enthält eine Zustandsmaschine, die sich ideal zur Steuerung des Ausführungsablaufs eignet. Mit SceneLinkedSMBs können Sie öffentliche Funktionen auf einem MonoBehaviour aufrufen, so dass es die Funktionalität steuern kann, da es leichter Szenenreferenzen erhalten kann. Auf diese Weise können SceneLinkedSMBs die Logik als Teil eines Zustandsautomaten und die MonoBehaviours steuern, die mit der Steuerungsfunktionalität verbunden sind.

Nutzung von SceneLinkedSMB

Um ein neues Verhalten mit Hilfe der SceneLinkedSMB zu kodieren, müssen Sie:

  • Lassen Sie Ihre neue Klasse SceneLinkedSMB erben. Da die Klasse ein Generic ist, müssen Sie den Typ des MonoBehaviour angeben, das sie halten soll. Zum Beispiel: öffentliche Klasse EnemyAttackState: SceneLinkedSMB
  • Initialisieren Sie auf jedem Spielobjekt mit einem Animator, der diesen Zustand verwendet. Im obigen Beispiel könnten wir die folgende Zeile zur Start()-Funktion der Enemy-Klasse hinzufügen: SceneLinkedSMB.Initialise(animator, this); In diesem Beispiel ist der Animator eine Referenz auf den Animator mit einem Zustand, in dem sich ein SceneLinkedSMB befindet. Beachten Sie, dass Sie dies nur einmal aufrufen müssen, auch wenn Sie 10 verschiedene Skripte für Multiples-Zustände haben. Solange sie alle von SceneLinkedSMB erben, werden sie alle initialisiert.
  • Überschreiben Sie alle benötigten Zustandsfunktionen. SceneLinkedSMB wurde um weitere Funktionen erweitert, um eine genauere Kontrolle darüber zu ermöglichen, wann die Funktionalität stattfindet. In Ihrer Klasse können Sie auf ein geschütztes Element namens m_MonoBehaviour zugreifen, das den gleichen Typ hat wie der generische Typparameter der Klasse. Wenn wir also unser Beispiel fortsetzen, wäre m_MonoBehaviour vom Typ Feind.

Beispiele

Feind.cs

C#

        
1    |  public class Enemy: MonoBehaviour
2    |  {
3    |      Animator animator;
4    |      void Start()
5    |     {
6    |          animator = GetComponent();
7    |          SceneLinkedSMB.Initialise(animator, this);
8    |      }
9    |      public void TrickerAttack()
10   |      {
11   |      // ...
12   |      }
13   |   }

EnemyAttackState.cs

C#

        
1    |  public class EnemyAttackState: SceneLinkedSMB
2    |  {
3    |      public override void OnSLStateEnter (Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
4    |     {
5    |          // m_MonoBehaviour is of type Enemy 
6    |          m_MonoBehaviour.TrickerAttack ();
7    |      }
8    |   }

Spielplatz

Erste Schritte
  1. Einführung in das Game Kit
  2. Erstellen einer neuen Szene
  3. Levelerstellung
  4. Testen eines Levels
  5. Hinzufügen einer beweglichen Plattform
  6. Öffnen einer Tür durch ein Ereignis
  7. Feinde
  8. Beschädigung durch Objekte
  9. Dekorieren
  10. Teleportieren des Spielers
  11. Spaß haben
Erste Schritte mit dem 2D-Spielkit
  1. Überblick und Ziele
  2. Ellen und das Setzen von Gefahren
  3. Hinzufügen von beweglichen Plattformen
  4. Türen und zerstörbare Objekte
  5. Feinde hinzufügen und ausmerzen
  6. Steuerung von Plattformen mit Schaltern
  7. Verwendung des Inventarsystems
  8. Teleporting und Dialogfelder
Referenzhandbuch für das Spiel-Kit
  1. Wie man dieses Dokument verwendet
  2. Ellen
  3. Feindliches Verhalten
  4. Gesundheitsförderung
  5. Drucksensor
  6. Schadenssystem
  7. Bewegliche Plattform
  8. Interaktionssystem
  9. Inventarsystem
  10. HubDoor
  11. Feindauftauchen
Erweiterte Game Kit Themen
  1. Fortgeschrittene Themen
  2. Zufalls-Audio-Player
  3. VFXController
  4. Datenbestandsdauer
  5. SceneLinkedSMB
  6. Objektpooling im Gamekit
  7. Verhaltensbaum