Unity Manager. Instance

Create your own custom GameManager script

//Example
public class GameManager : MonoBehaviour
{
    public static GameManager Instance;
    public static event Action<GameState> OnGameStateChanged;
    int UserScore = 0;
    int CompScore = 0;



    private void Awake()
    {
        Instance = this;
    }

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    public void UpdateGameState(GameState newState) 
    {
        switch (newState)
        {
            case GameState.UserScored:
                HandleUserScored();
                break;
            case GameState.CompScored:
                HandleCompScored();
                break;
            default:
                throw new NotImplementedException($"No case block for state {newState}");
        }
        OnGameStateChanged.Invoke(newState);
    }
    
    private void HandleUserScored(){
    	UserScore++;
    }
    private void HandleCompScored(){
    	CompScore++;
    }
}

public enum GameState 
{
    UserScored,
    CompScored,
}
bacon butty