private SidescrollerGameManager gm;         // Cached reference to game manager


    void Awake()
    {
        // Setting up references.
        anim = GetComponent <Animator>();
        InitializeSprites();
        gm = SidescrollerGameManager.instance;
    }
    void Awake()
    {
        instance = this;

        // Cache positions!
        cachedWorldPosition  = world.transform.position;
        cachedPlayerPosition = player.transform.position;

        // Coins!
        CoinController.OnCoinTotalUpdate += CollectCoin;
        cachedCoinCount = GameObject.FindGameObjectsWithTag("Coin").Length;

        // Start in the black!
        state = GameState.Start;
        blackScreen.SetActive(true);
        gameStartTextObject.gameObject.SetActive(false);
        gameWorldObject.SetActive(false);
        gameCanvasesObject.SetActive(false);
        titleObject.SetActive(true);
        creditsObject.SetActive(false);

        // Unless you don't!
        if (!startWithStartScreen)
        {
            ResetLevel();
        }
    }