void OnChallengePanelClose()
    {
        _challengeSubPanel.OnSelectedEvent -= OnChallengeSelected;
        _challengeSubPanel.OnCloseEvent    -= OnChallengePanelClose;
        _challengeSubPanel.Dispose();

        DestroyImmediate(_challengeSubPanel.gameObject);

        _challengeSubPanel = null;
    }
    void ShowChallengeSubScreen()
    {
        GameItemData  dataCategoryItems = loadedData.allRoundData[_selectedCatIndex];
        GameDataItems gameDataItem      = dataCategoryItems.items[_selectedItemIndex];

        GameObject subScreen = (GameObject)Instantiate(Resources.Load("HomeScreen/screens/ChallengePlaySubScreen"));

        _challengeSubPanel = subScreen.GetComponent <ChallengePlaySubPanel> ();
        _challengeSubPanel.gameObject.transform.SetParent(_stage.transform, false);
        _challengeSubPanel.Show(gameDataItem, homeScreenIconPath + dataCategoryItems.imagePath);
        _challengeSubPanel.OnSelectedEvent += OnChallengeSelected;
        _challengeSubPanel.OnCloseEvent    += OnChallengePanelClose;
    }