private IEnumerator showPopupScreen(DRewardPopupScreen screenData)
        {
            PrefabContentKey screenContentKey = RewardPopupConstants.ScreenSplashContentKey;

            switch (screenData.ScreenType)
            {
            case DRewardPopupScreen.RewardScreenPopupType.splash:
                screenContentKey = RewardPopupConstants.ScreenSplashContentKey;
                break;

            case DRewardPopupScreen.RewardScreenPopupType.splash_levelup:
                screenContentKey = RewardPopupConstants.ScreenLevelUpContentKey;
                break;

            case DRewardPopupScreen.RewardScreenPopupType.splash_replay:
                screenContentKey = RewardPopupConstants.ScreenReplayContentKey;
                break;

            case DRewardPopupScreen.RewardScreenPopupType.items:
                screenContentKey = RewardPopupConstants.ScreenItemContentKey;
                break;

            case DRewardPopupScreen.RewardScreenPopupType.count:
                screenContentKey = RewardPopupConstants.ScreenCountContentKey;
                break;

            case DRewardPopupScreen.RewardScreenPopupType.coinsxp:
                screenContentKey = RewardPopupConstants.ScreenCoinsXPContentKey;
                break;

            case DRewardPopupScreen.RewardScreenPopupType.quests:
                screenContentKey = RewardPopupConstants.ScreenQuestsContentKey;
                break;

            case DRewardPopupScreen.RewardScreenPopupType.custom:
            {
                DRewardPopupScreenCustom dRewardPopupScreenCustom = screenData as DRewardPopupScreenCustom;
                if (dRewardPopupScreenCustom != null)
                {
                    screenContentKey = dRewardPopupScreenCustom.ScreenKey;
                }
                break;
            }
            }
            AssetRequest <GameObject> assetRequest = Content.LoadAsync(screenContentKey);

            yield return(assetRequest);

            GameObject screenGO = UnityEngine.Object.Instantiate(assetRequest.Asset);

            screenGO.transform.SetParent(ScreenParentTransform, worldPositionStays: false);
            screenGO.GetComponent <RectTransform>().localPosition += new Vector3(0f, 0f, -100f);
            currentScreen = screenGO.GetComponent <RewardPopupScreen>();
            currentScreen.ScreenCompleteAction += onCurrentScreenComplete;
            currentScreen.Init(screenData, this);
        }
        private static List <DRewardPopupScreen> buildCustomScreens(DRewardPopup popupData)
        {
            List <DRewardPopupScreen> list = new List <DRewardPopupScreen>();

            if (popupData.CustomScreenKeys != null)
            {
                for (int i = 0; i < popupData.CustomScreenKeys.Count; i++)
                {
                    DRewardPopupScreenCustom item = new DRewardPopupScreenCustom(popupData.CustomScreenKeys[i]);
                    list.Add(item);
                }
            }
            return(list);
        }