Discussione GameManager in Unity

Albe_

Utente Bronze
15 Aprile 2020
88
8
20
31
Salve, se no sbaglio se si nomina uno script in Unity: GameManager la sua icona cambia (e infatti da me è cambiata), ma anche la classe in sè all'interno dello script ha caratteristiche particolari (es può essere richiamata in qualunque altro script senza creare una referenza), mi sbaglio?

Inoltre sapevo che era prassi quando si crea il GameManager di un gioco di inserire nella funzione Awake(), che viene richiamata prima di qualunque cosa, un piccolo script che appurava l'unicità di questo GameManager e quindi se erano presenti altri GameManager nel gioco li eliminava, sapreste come implementarla?

Io avevo pensato ad una cosa del genere per trovare tutti i GameManager, ma non saprei come eliminarli tutti tranne quello principale, forse con un this?
C#:
private void Awake()
    {
        var components = GetComponents<GameManager>();

        foreach (var component in components)
        {
            Debug.Log(component);
        }
    }
 
Se per caso, dopo due anni dalla tua domanda, non avessi ancora trovato una risposta...
Se nomini uno script GameManager non succede nulla di magico se non il cambio dell'icona. Per il resto rimane un normale script.
Il GameManager deve essere uno solo e di solito si usa un Singleton per renderlo tale.

A questo link https://www.unity3dtutorials.it/2018/02/07/struttura-e-organizzazione-iniziale/ trovi maggiori informazioni. Si tratta di una guida che insegna a programmare in linguaggio C# e Unity partendo da zero. Ho passato tutto su eBook ma alcune cose sono ancora accessibili dal sito.

Ciao e buon sviluppo!