Unity Hybrid ECS mit "altem Weg"


8

Ist es möglich, Hybrid ECS mit einigen Komponenten und den Standard MonoBehaviourmit all Ihrem alten Code zu verwenden?

Ich möchte es wissen, weil ich bereits einige Spielmechaniken habe, die mit der "alten" Art gebaut wurden, und ich möchte die neuen mit Hybrid bauen

Antworten:


8

Es ist durchaus möglich, beide Stile zu mischen. Für dasselbe GameObject können einige seiner Funktionen mit dem neuen ECS-System und andere Funktionen in klassischen MonoBehaviour-Ereignissen implementiert werden.

Was Unity in seinem ECS-Tutorial empfiehlt, ist, mit einem Projekt zu beginnen, das den alten Stil verwendet, und dann nach Funktionen zu suchen, von denen Sie glauben, dass sie von einer Umgestaltung auf das neue ECS-Muster profitieren würden:

Was bedeutet das für mein Spiel?

Sie können das Verhalten von MonoBehaviour.Update-Methoden nacheinander in ComponentSystems konvertieren. Sie können tatsächlich alle Ihre Daten in einem MonoBehaviour speichern, und dies ist in der Tat eine sehr einfache Möglichkeit, den Übergang zum ECS-Stilcode zu starten.

Ihre Szenendaten bleiben also in GameObjects & Components. Sie verwenden GameObject.Instantiate weiterhin, um Instanzen usw. zu erstellen.

Sie verschieben einfach den Inhalt Ihres MonoBehaviour.Update in eine ComponentSystem.OnUpdate-Methode. Die Daten werden im selben MonoBehaviour oder in anderen Komponenten gespeichert.

Dies nutzt natürlich nicht die Vorteile des neuen Jobs-Systems und die Instanziierung von Entitäten über einen EntityManager. Diese neuen Funktionen können aber auch mit klassischen MonoBehaviours kombiniert werden.

Für weitere Informationen zum Konvertieren eines Spiels von der Verwendung des klassischen MonoBehaviour-Musters in das ECS-Muster empfehle ich auch diese Videoserie aus dem offiziellen Unity-Kanal, in der das gute alte Space-Shooter-Beispiel Schritt für Schritt in den neuen Stil konvertiert wird Nutzung von immer mehr neuen Funktionen. Jeder Schritt dazwischen funktioniert perfekt. Die endgültige Version verwendet noch einige klassische Spielobjekte, da eine Funktion, die mit dem ECS-System noch nicht verfügbar ist (Partikeleffekte).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.