Singleton-Pattern in Unity
So setzt du das Singleton-Pattern in Unity um

Das Singleton-Pattern ist ein Entwurfsmuster, das die Instanziierung einer Klasse auf eine einzige Instanz beschränkt und einen globalen Zugriffspunkt auf diese Instanz bereitstellt. Das ist in der Spieleentwicklung besonders nützlich, wenn du gemeinsame Ressourcen oder Konfigurationen verwalten musst, etwa Spieleinstellungen, Audio-Manager oder Player-Controller.
Um das Singleton-Pattern in Unity umzusetzen, kannst du eine generische Singleton-Klasse erstellen, von der jede MonoBehaviour-Klasse erben kann. Hier ist ein Beispiel dafür:
public class Singleton<T> : MonoBehaviour where T : MonoBehaviour {
public static T Instance {
get; private set;
}
protected virtual void Awake() {
if(Instance != null && Instance != this) {
Destroy(gameObject);
}
Instance = this;
}
}In diesem Beispiel definieren wir eine generische Klasse Singleton<T>, die von MonoBehaviour erbt. Die Eigenschaft Instance ist statisch und enthält die einzige Instanz der Klasse. In der Methode Awake prüfen wir, ob bereits eine Instanz existiert. Falls ja und es nicht die aktuelle Instanz ist, zerstören wir das aktuelle GameObject, damit es nur eine einzige Instanz gibt. Andernfalls setzen wir die Eigenschaft Instance auf die aktuelle Instanz.