Dies ist eine sehr grobe Skizze, wie ich die Dinge derzeit entworfen habe. Es sollte zumindest eine Vorstellung davon geben, wie mein ECS derzeit aufgebaut ist.
Wenn Sie in diesem Diagramm bemerken, habe ich das HUD grundsätzlich aus dem ECS aufgeteilt. Sie haben ihre eigenen Dinge (HudLayer, HudComponent usw.) und werden unterschiedlich behandelt. Hier kämpfe ich allerdings.
Es gibt viele verschiedene Fälle, in denen das HUD über Entitäten Bescheid wissen muss. Nicht nur Daten ändern (ich habe einen Event-Dispatcher dafür), sondern auch die eigentliche Entität und alles, was sie umfasst. Es gibt auch Situationen, in denen Entitäten in der Lage sein müssen, das HUD nach Daten abzufragen. Nehmen wir ein paar Beispiele:
Zuerst mein Gerätebildschirm. Hier kann ich die Ausrüstung eines Charakters (Entität) ändern. Dazu muss ich über die Entität Bescheid wissen. Zumindest glaube ich das? Wie kann ich damit umgehen?
Das zweite Szenario beinhaltet, dass meine Systeme eine HudComponent nach Daten abfragen müssen. Ein konkretes Beispiel wäre mein Kampfsystem. Jedes "Team" erhält ein 3x3-Raster, in dem es sich bewegen kann. Siehe hier:
Fähigkeiten zielen auf diese Zellen ab und nicht auf den Spieler. Daher würde ich für meine Systeme eine Möglichkeit benötigen, um festzustellen, welche Zellen belegt sind und welche nicht. Grundsätzlich brauche ich einen Weg für die bidirektionale Kommunikation zwischen Systemen und meinem HUD. Ich weiß, dass es (sowieso von einigen Leuten) empfohlen wird, Ihr HUD aus dem ECS zu entfernen. Ist das in meinem Fall angemessen?