Un Singleton permite tener una única instancia global de una clase.

Ejemplo

public class GameManager : MonoBehaviour
{
    public static GameManager Instance;

    void Awake()
    {
        if (Instance != null &&
            Instance != this)
        {
            Destroy(gameObject);
            return;
        }

        Instance = this;

        DontDestroyOnLoad(
            gameObject
        );
    }
}

Uso

GameManager.Instance.GameOver();

Ventaja

Acceso fácil desde cualquier lugar.

Problemas

Si abusás de Singletons:

Cuándo usarlo

Útil para sistemas realmente globales:

Resumen rápido