A Singleton exposes one shared instance.

public class GameManager : MonoBehaviour
{
    public static GameManager Instance;

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

        Instance = this;
        DontDestroyOnLoad(gameObject);
    }
}

Usage:

GameManager.Instance.GameOver();

Useful for truly global services, but excessive Singletons create hidden coupling.