In Susuwatari sammelt der kleine Rußgeist Kohle im Raum ein. Doch damit der Ofen erst dann aktiviert wird, wenn wirklich jede Kohle gefunden wurde, reicht es nicht aus, nur im Player zu zählen. Hier kommt die Kommunikation zwischen Player und Raum ins Spiel. Der PlayerCoalDetector meldet jeden eingesammelten Pickup an den RoomCoalManager.
Warum Melden besser ist als Zählen im Player allein
Wenn nur der Player seine eigene Kohle zählt, weiß der Raum nicht, wie viel ursprünglich existierte. Der Ofen kann also nicht prüfen, ob wirklich alles eingesammelt wurde.
Der Manager hingegen kennt:
- die Gesamtanzahl der Kohle im Raum
- die Anzahl der bereits eingesammelten Objekte
Damit entsteht eine zentrale Kontrollinstanz.
Die Aufgabe des PlayerCoalDetector
Der PlayerCoalDetector hat zwei Aufgaben:
- Sound abspielen
- Kohle zählen
Jetzt kommt eine dritte Aufgabe hinzu:
Er informiert den RoomCoalManager über jeden erfolgreichen Pickup.
Die technische Umsetzung
Zuerst bekommt der PlayerCoalDetector eine Referenz auf den Manager:
public RoomCoalManager roomManager;
Beim Einsammeln wird zusätzlich zur Inventarerhöhung der Manager benachrichtigt:
private void OnTriggerEnter2D(Collider2D other)
{
if (!other.CompareTag("Kohle")) return;
coalAmount++;
if (roomManager != null)
roomManager.RegisterCoalPickup();
Destroy(other.gameObject);
}
Jedes eingesammelte Objekt erhöht damit zwei Werte:
- die Kohle im Inventar von Susuwatari
- die gesammelte Kohle im Raum
Warum diese Trennung wichtig ist
Susuwatari kümmert sich um sein Inventar.
Der Raum kümmert sich um seine Ressourcenverwaltung.
Keines der Systeme übernimmt die Verantwortung des anderen. Diese klare Struktur sorgt dafür, dass:
- der Ofen sauber prüfen kann, ob alles eingesammelt wurde
- neue Räume eigene Manager besitzen können
- unterschiedliche Ressourcenarten später leicht ergänzt werden
Verbindung im Editor herstellen
Im Inspector ziehst du das RoomCoalManager GameObject einfach in das Feld roomManager des PlayerCoalDetector. So entsteht die Referenz zwischen beiden Komponenten.
Alternativ kann die Referenz im Awake automatisch gesucht werden, doch die manuelle Zuweisung ist transparenter und kontrollierter.
Was das für Susuwataris Gameplay bedeutet
Durch diese Meldelogik entsteht ein kontrollierter Fortschritt. Susuwatari kann die Kohle erst dann im Ofen abliefern, wenn der Raum als vollständig geleert gilt.
Das verhindert Abkürzungen und sorgt für ein klares Levelziel.
Fazit
Der PlayerCoalDetector übernimmt nicht nur das Einsammeln, sondern auch die Kommunikation mit dem RoomCoalManager. Jeder Pickup wird gemeldet, wodurch der Raum seinen Zustand kennt. Diese modulare Architektur macht Susuwataris Sammelmechanik stabil, nachvollziehbar und leicht erweiterbar.
Weitere Artikel auf Games und Lyrik: Die Pendulo Studios
