Zum Inhalt springen
DasPeTe Tutorials

Singleton-Pattern in Unity

So setzt du das Singleton-Pattern in Unity um

Einsteiger5 Min.

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:

csharp
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.

Kommentare

Die Kommentare sind GitHub Discussions: Zum Schreiben mit GitHub anmelden.

Die Kommentare kommen über giscus von GitHub. Beim Laden gehen deine IP-Adresse an giscus.app und GitHub.