// constructor adds Managers to the GameManager and sets state and direction
        public GameManager(LevelManager levelManager) {
            GameObject.OnDeathListener += DeathListener;
            LevelManager = levelManager;
            InputManager = new InputManager();
            CollisionManager = new CollisionManager();
            SpawnManager = new SpawnManager();

            GameState = EGameState.Running;
            OnGameStateChangedListener(GameState);

            CurrentDirection = EDirection.South;
            OnDirectionChangedListener(CurrentDirection);

            GameLoop();
        }