/// <summary>
    /// リロード
    /// </summary>
    private void Reload()
    {
        //BOX内リスト確認通信
        PresentApi.CallListApi((response) =>
        {
            //追加ローダー準備
            var addLoader = new AssetListLoader(response.tPresentBox
                                                .Concat(response.tPresentBoxLimited)
                                                .Concat(response.tPresentBoxReceived)
                                                .Select(x => CommonIconUtility.GetItemInfo(x.itemType, x.itemId))
                                                .Where(x1 => !x1.IsCommonSprite() && !this.loader.Exists(x2 => x2.path == x1.GetSpritePath()))
                                                .Select(x => new AssetLoader <Sprite>(x.GetSpritePath())));

            //ロード中はタッチブロック
            SharedUI.Instance.DisableTouch();

            //ロード
            addLoader.Load(() =>
            {
                //タッチブロック解除
                SharedUI.Instance.EnableTouch();
                //ローダー統合
                this.loader.AddRange(addLoader);
                //再セットアップ
                this.Setup(response, this.loader);
                //必要ならVIPレベルアップ表示
                UIVipLevelUp.OpenIfNeed(this.vipLevelUpPrefab);
            });
        });
    }
        /// <summary>
        /// 開く
        /// </summary>
        public static void Open(
            SingleBattleResultPopupContent prefab,
            Master.SingleStageData stageData,
            SinglePlayApi.ClearResponseData response,
            Rank clearRank,
            Action onClose)
        {
            //報酬
            var rewards = response.firstReward.Concat(response.normalReward).ToArray();

            //ローダー準備
            var loader = new AssetListLoader(rewards
                                             .Select(x => CommonIconUtility.GetItemInfo(x.itemType, x.itemId))
                                             .Where(x => !x.IsCommonSprite())
                                             .Select(x => new AssetLoader <Sprite>(x.GetSpritePath())));

            //ロード中はタッチブロック
            SharedUI.Instance.DisableTouch();

            //ロード
            loader.Load(() =>
            {
                //タッチブロック解除
                SharedUI.Instance.EnableTouch();

                //ダイアログ開く
                var dialog  = SharedUI.Instance.ShowSimpleDialog();
                var content = dialog.AddContent(prefab);
                content.Setup(dialog, stageData, response, clearRank, rewards, loader, onClose);
            });
        }
    /// <summary>
    /// 開く
    /// </summary>
    public static void Open(PresentBoxDialogContent prefab, Action <PresentBoxDialogContent> onClose)
    {
        //BOX内リスト確認通信
        PresentApi.CallListApi((response) =>
        {
            //ローダー準備
            var loader = new AssetListLoader(response.tPresentBox
                                             .Concat(response.tPresentBoxLimited)
                                             .Concat(response.tPresentBoxReceived)
                                             .Select(x => CommonIconUtility.GetItemInfo(x.itemType, x.itemId))
                                             .Where(x => !x.IsCommonSprite())
                                             .Select(x => new AssetLoader <Sprite>(x.GetSpritePath())));

            //ロード中はタッチブロック
            SharedUI.Instance.DisableTouch();

            //ロード
            loader.Load(() =>
            {
                //タッチブロック解除
                SharedUI.Instance.EnableTouch();

                //ダイアログ表示
                var dialog                = SharedUI.Instance.ShowSimpleDialog();
                dialog.titleText.text     = Masters.LocalizeTextDB.Get("PresentBoxTitle");
                dialog.closeButtonEnabled = true;

                var content = dialog.AddContent(prefab);
                content.Setup(response, loader);
                content.onClose = onClose;
            });
        });
    }
Esempio n. 4
0
    /// <summary>
    /// ショップ開く
    /// </summary>
    public static void Open(MultiBattleShop prefab)
    {
        //通信で商品リスト取得
        BillingApi.CallListApi(() => {
            ShopApi.CallNowShopApi((tShops) =>
            {
                //ローダー準備
                var loader = new AssetListLoader(Masters.ShopDB
                                                 .GetList()
                                                 .Where(x => x.multiFlg > 0)
                                                 .SelectMany(x1 => Masters.ShopItemDB.GetList().FindAll(x2 => x2.shopItemId == x1.shopItemId))
                                                 .Select(x => CommonIconUtility.GetItemInfo(x.itemType, x.itemId))
                                                 .Where(x => !x.IsCommonSprite())
                                                 .Select(x => new AssetLoader <Sprite>(x.GetSpritePath())));

                //ロード中タッチブロック
                SharedUI.Instance.DisableTouch();

                //リソースロード
                loader.Load(() =>
                {
                    //タッチブロック解除
                    SharedUI.Instance.EnableTouch();

                    //ショップダイアログ生成
                    var dialog    = SharedUI.Instance.ShowPopup(prefab);
                    dialog.loader = loader;
                    dialog.Setup(tShops);
                });
            });
        });
    }
Esempio n. 5
0
    /// <summary>
    /// vip詳細開く
    /// </summary>
    public static void Open(VipInfoDialog prefab)
    {
        // 通信で、vipLevel, 補償取得の可否取得
        VipApi.CallVipLevelApi((response) =>
        {
            var loader = new AssetListLoader(Masters.VipRewardDB
                                             .GetList()
                                             .Select(x => CommonIconUtility.GetItemInfo(x.itemType, x.itemId))
                                             .Where(x => !x.IsCommonSprite())
                                             .Select(x => new AssetLoader <Sprite>(x.GetSpritePath()))
                                             );

            // タッチブロック
            SharedUI.Instance.DisableTouch();

            // 読み込み開始
            loader.Load(() =>
            {
                //タッチブロック解除
                SharedUI.Instance.EnableTouch();
                // ロード後
                var dialog = SharedUI.Instance.ShowSimpleDialog();
                dialog.closeButtonEnabled = true;
                dialog.titleText.text     = Masters.LocalizeTextDB.Get("VipInfoTitle");
                var content         = dialog.AddContent(prefab);
                content.assetLoader = loader;
                content.Set(response);
            });
        });
    }
Esempio n. 6
0
 /// <summary>
 /// OnDestroy
 /// </summary>
 protected override void OnDestroy()
 {
     this.loader.Unload();
     this.loader.Clear();
     this.loader = null;
     base.OnDestroy();
 }
    /// <summary>
    /// セットアップ
    /// </summary>
    private void Setup(SimpleDialog dialog, List <FishDataEx> fishDataList, AssetListLoader loader,  Master.ModelBase master)
    {
        this.dialog       = dialog;
        this.fishDataList = fishDataList;
        this.loader       = loader;

        //シングルモード内容構築
        if (master is Master.SingleStageData)
        {
            var stageData = master as Master.SingleStageData;
            //ワールド名
            this.worldNameText.text = Masters.SingleWorldDB.FindById(stageData.worldId).name;
            //ステージ名
            this.stageNameText.text = stageData.name;
            //特殊魚マーク表示OFF
            this.focusedFishSubTextBg.gameObject.SetActive(false);
            // シングルワールドマスターデータキー
            var worldKey = Masters.SingleWorldDB.FindById(stageData.worldId).key;
            // 図鑑の背景イメージ、パース
            string spritePath = SharkDefine.GetZukanBgSpritePath(worldKey);
            // 図鑑の背景イメージ、ロード
            this.worldBgImage.sprite = this.loader[spritePath].handle.asset as Sprite;
        }
        //マルチモード内容構築
        else if (master is Master.MultiWorldData)
        {
            var worldData = master as Master.MultiWorldData;
            //ワールド名
            this.worldNameText.text = worldData.name;
            //ステージ名非表示
            this.stageNameText.gameObject.SetActive(false);
            // 図鑑の背景イメージ、パース
            string spritePath = SharkDefine.GetZukanBgSpritePath(worldData.key);
            // 図鑑の背景イメージ、ロード
            this.worldBgImage.sprite = this.loader[spritePath].handle.asset as Sprite;
        }

        //ダイアログタイトル「図鑑」
        this.dialog.titleText.text = Masters.LocalizeTextDB.Get("Dictionary");

        //Closeボタン表示ON
        this.dialog.closeButtonEnabled = true;

        //ワールド名、ステージ名の幅に合わせてレイアウト調整
        LayoutRebuilder.ForceRebuildLayoutImmediate(this.nameArea);

        //初期フォーカス魚設定
        if (this.fishDataList.Count > 0)
        {
            this.SetFocusedFish(this.fishDataList[0]);
        }

        //スクロールビュー構築
        this.scrollView.Initialize(
            this.thumbnailIconPrefab.gameObject,
            this.fishDataList.Count,
            this.OnUpdateFishThumbnailIconView
            );
    }
    /// <summary>
    /// セット
    /// </summary>
    private void Set(AssetListLoader loader, TurretViewer turretViewer)
    {
        this.loader       = loader;
        this.turretViewer = turretViewer;

        var userData = UserData.Get();

        if (userData != null)
        {
            //ユーザー名
            this.userNameText.text = userData.name;

            //ユーザーレベル
            this.userLvText.text = string.Format("Lv.{0}", userData.lv);

            //EXPメーター
            if (userData.lv < Masters.LevelDB.GetList().Max(x => x.lv))
            {
                uint needExp = (uint)Masters.LevelDB.GetList()
                               .Where(x => x.lv <= userData.lv)
                               .Sum(x => x.exp);

                this.expMeter.fillAmount = (float)userData.exp / needExp;
            }
            else
            {
                this.expMeter.fillAmount = 1f;
            }

            // ユーザーID
            this.userIdText.text = Masters.LocalizeTextDB.GetFormat("UserId", userData.userId.ToString());

            // 最高ベット
            var betId  = Masters.LevelDB.FindById(userData.lv).betId;
            var maxBet = Masters.BetDB.FindById(betId).maxBet;
            this.maxBetText.text = Masters.LocalizeTextDB.GetFormat("UnitMaxbet", maxBet);

            // ユーザ機器移動の情報セット
            this.takeOverId.text   = PlayerPrefs.GetString("takeOverId", "");
            this.takeOverPass.text = PlayerPrefs.GetString("takeOverPass", "");

            // ボタンセット
            if (string.IsNullOrEmpty(this.takeOverId.text))
            {
                this.takeOverIdCopyButton.interactable   = false;
                this.takeOverPassCopyButton.interactable = false;
                this.SetGrayout(true);
            }
            else
            {
                this.takeOverIdCopyButton.interactable   = true;
                this.takeOverPassCopyButton.interactable = true;
                this.SetGrayout(false);
            }
        }
    }
    /// <summary>
    /// OnDestroy
    /// </summary>
    private void OnDestroy()
    {
        if (this.loader != null)
        {
            this.loader.Unload();
            this.loader.Clear();
            this.loader = null;
        }

        this.onClose?.Invoke(this);
    }
        /// <summary>
        /// セットアップ
        /// </summary>
        private void Setup(
            SimpleDialog dialog,
            Master.SingleStageData stageData,
            SinglePlayApi.ClearResponseData response,
            Rank clearRank,
            SinglePlayApi.RewardData[] rewards,
            AssetListLoader loader,
            Action onClose)
        {
            this.dialog         = dialog;
            this.dialog.onClose = onClose;
            this.response       = response;
            this.rewards        = rewards;
            this.loader         = loader;

            //星マーク
            for (int i = 0; i < this.starImage.Length; i++)
            {
                this.starImage[i].enabled = i < (int)clearRank - 2;
            }

            //通常報酬が8個以下なら
            if (this.rewards.Length < 9)
            {
                //非スクロールエリアに報酬アイコンを生成する
                this.horizontalLayoutGroup.gameObject.SetActive(true);
                this.scrollView.gameObject.SetActive(false);

                for (int i = 0; i < this.rewards.Length; i++)
                {
                    var icon = Instantiate(this.rewardIconPrefab, this.horizontalLayoutGroup.transform, false);
                    this.OnUpdateRewardIconView(icon.gameObject, i);
                }
            }
            //通常報酬が9個以上なら
            else
            {
                //スクロールエリアに報酬アイコンを生成する
                this.horizontalLayoutGroup.gameObject.SetActive(true);
                this.scrollView.gameObject.SetActive(true);
                this.scrollView.Initialize(this.rewardIconPrefab.gameObject, this.rewards.Length, this.OnUpdateRewardIconView);
            }

            //タイトルテキスト設定
            this.dialog.titleText.text = Masters.LocalizeTextDB.Get("Result");

            //ステージセレクトへ戻るボタンの追加
            var button = this.dialog.AddOKButton();

            button.text.text = Masters.LocalizeTextDB.Get("ToStageSelect");
            button.onClick   = this.OnClickOKButton;
        }
    /// <summary>
    /// 開く
    /// </summary>
    public static void Open(SingleStageFishDictionaryDialogContent prefab, Master.ModelBase master)
    {
        List <FishDataEx> fishDataList = null;
        string            worldKey     = null;

        //シングルモードの場合
        if (master is Master.SingleStageData)
        {
            var stageData = master as Master.SingleStageData;

            fishDataList = Masters.SingleStageFishDB
                           .GetList()
                           .Where(x => x.stageId == stageData.id)
                           .Select(x => new FishDataEx(Masters.FishDB.FindById(x.fishId), x))
                           .ToList();

            worldKey = Masters.SingleWorldDB.FindById(stageData.worldId).key;
        }
        //マルチモードの場合
        else if (master is Master.MultiWorldData)
        {
            var worldData = master as Master.MultiWorldData;

            fishDataList = Masters.MultiStageFishDB
                           .GetList()
                           .Where(x => x.worldId == worldData.id)
                           .Select(x => new FishDataEx(Masters.FishDB.FindById(x.fishId), x))
                           .ToList();

            worldKey = worldData.key;
        }

        var loader = new AssetListLoader(fishDataList.Select(x => new AssetLoader <Sprite>(SharkDefine.GetFishThumbnailSpritePath(x.Item1.key))));

        loader.Add <Sprite>(SharkDefine.GetZukanBgSpritePath(worldKey));

        //ロード中のタッチブロック
        SharedUI.Instance.DisableTouch();

        //ロード
        loader.Load(() =>
        {
            //タッチブロック解除
            SharedUI.Instance.EnableTouch();

            //ダイアログ開く
            var dialog  = SharedUI.Instance.ShowSimpleDialog();
            var content = dialog.AddContent(prefab);
            content.Setup(dialog, fishDataList, loader, master);
        });
    }
Esempio n. 12
0
    /// <summary>
    /// セットアップ
    /// </summary>
    public void Setup(MultiPlayApi.LevelUpResponseData response, AssetListLoader loader, Action onClose)
    {
        this.loader  = loader;
        this.onClose = onClose;

        //レベルの桁数によってOn/Off切り替わる
        int lv = (int)response.tUsers.level;
        int n  = (100 <= lv) ? 2 : (10 <= lv && lv < 100) ? 1 : 0;

        this.numGroups[0].root.SetActive(n == 0);
        this.numGroups[1].root.SetActive(n == 1);
        this.numGroups[2].root.SetActive(n == 2);

        //数値イメージ差し替え
        for (int i = 0; i < this.numGroups[n].numImages.Length; i++)
        {
            int    num        = lv / (int)Mathf.Pow(10, i) % 10;
            string spriteName = string.Format("BtMlti_030_0005_{0}", num);
            this.numGroups[n].numImages[i].sprite = SceneChanger.currentScene.sceneAtlas.GetSprite(spriteName);
        }

        //アニメーション再生
        this.animator.Play(this.numGroups[n].stateName, this.animator.GetLayerIndex("Text_Count"), 0f);

        //アイテム無しならここでreturn
        if (response.mLevelReward == null || response.mLevelReward.Length == 0)
        {
            return;
        }

        //アイテム生成
        foreach (var item in response.mLevelReward)
        {
            var itemIcon = Instantiate(this.itemIconPrefab, this.itemIconArea, false);

            //CommonIcon表示構築
            itemIcon.Set(item.itemType, item.itemId, true);

            //数量テキストセット
            if (item.itemNum > 1)
            {
                itemIcon.SetCountText(item.itemNum);
            }
            else
            {
                itemIcon.countText.text = null;
            }
        }
    }
    /// <summary>
    /// OnDestroy
    /// </summary>
    private void OnDestroy()
    {
        if (this.turretViewer != null)
        {
            Destroy(this.turretViewer.gameObject);
            this.turretViewer = null;
        }

        if (this.loader != null)
        {
            this.loader.Unload();
            this.loader.Clear();
            this.loader = null;
        }
    }
    /// <summary>
    /// 内容構築
    /// </summary>
    private void Setup(PresentApi.ListResponseData response, AssetListLoader loader)
    {
        this.response = response;
        this.loader   = loader;

        //各タブに要素を割り当てる
        this.unlimitedTab.SetItems(response.tPresentBox.ToArray(), 10);
        this.limitedTab.SetItems(response.tPresentBoxLimited.ToArray(), 10);
        this.historyTab.SetItems(response.tPresentBoxReceived.ToArray(), 999);

        //一括受け取りボタンの表示設定
        this.SetReceiveAllButtonView();

        //スクロールビュー構築
        this.SetPageNo(this.selectedTab.pageIndex);
    }
Esempio n. 15
0
    /// <summary>
    /// 開く
    /// </summary>
    public static void Open(MultiPlayApi.LogData logData, UILevelUp prefab, RectTransform parent, Action onClose)
    {
        //API実行
        MultiPlayApi.CallLevelUpApi(logData, (response) =>
        {
            //レベルアップ前後の値
            //uint beforeLevel = UserData.Get().lv;
            uint afterLevel   = response.tUsers.level;
            UserData.Get().lv = afterLevel;

            //ローダー
            var loader = new AssetListLoader();

            if (response.mLevelReward != null)
            {
                //汎用スプライトじゃなければローダーに積む
                loader.AddRange(response.mLevelReward
                                .Select(x => CommonIconUtility.GetItemInfo(x.itemType, x.itemId))
                                .Where(x => !x.IsCommonSprite())
                                .Select(x => new AssetLoader <Sprite>(x.GetSpritePath())));

                //報酬付与
                foreach (var reward in response.mLevelReward)
                {
                    UserData.Get().AddItem((ItemType)reward.itemType, reward.itemId, reward.itemNum);
                }
            }

            //ロード中のタッチブロック
            SharedUI.Instance.DisableTouch();

            //ロード開始
            loader.Load(() =>
            {
                //タッチブロック解除
                SharedUI.Instance.EnableTouch();

                //レベルアップダイアログ開く
                var dialog = Instantiate(prefab, parent, false);
                dialog.Setup(response, loader, onClose);
            });
        });
    }
    /// <summary>
    /// 開く
    /// </summary>
    public static void Open(UserInformationDialogContent contentPrefab, TurretViewer turretViewerPrefab)
    {
        var selectedTurret = UserData.Get().GetSelectedTurretData();
        var batteryData    = Masters.BatteryDB.FindById(selectedTurret.batteryMasterId);
        var barrelData     = Masters.BarrelDB.FindById(selectedTurret.barrelMasterId);
        var bulletData     = Masters.BulletDB.FindById(selectedTurret.bulletMasterId);

        var loader = new AssetListLoader();

        loader.Add <GameObject>(SharkDefine.GetBatteryPrefabPath(batteryData.key));
        loader.Add <GameObject>(SharkDefine.GetBarrelPrefabPath(barrelData.key));
        loader.Add <BulletBase>(SharkDefine.GetBulletPrefabPath(bulletData.key));

        //ロード中はタッチブロック
        SharedUI.Instance.DisableTouch();

        //ロード
        loader.Load(() =>
        {
            //タッチブロック解除
            SharedUI.Instance.EnableTouch();

            //砲台表示
            var turretViewer        = Instantiate(turretViewerPrefab, null, false);
            turretViewer.BatteryKey = batteryData.key;
            turretViewer.BarrelKey  = barrelData.key;
            turretViewer.BulletKey  = bulletData.key;
            turretViewer.Reflesh();
            turretViewer.StartShot();

            //ダイアログ開く
            var dialog = SharedUI.Instance.ShowSimpleDialog();
            dialog.closeButtonEnabled = true;
            dialog.titleText.text     = Masters.LocalizeTextDB.Get("UserInformation");

            var content = dialog.AddContent(contentPrefab);
            content.Set(loader, turretViewer);
        });
    }
    /// <summary>
    /// 開く
    /// </summary>
    public static void Open(
        SingleStageChallengeConfirmDialogContent prefab,
        Master.SingleStageData stageData,
        Rank rank,
        Action <uint> onStageStart)
    {
        bool isCleared = rank > Rank.None;

        //報酬リスト
        List <RewardData> rewards = new List <RewardData>();

        //このステージで入手可能な報酬一覧
        var lotDatas = Masters.SingleStageRewardDB
                       .GetList()
                       .Where(x => x.groupId == stageData.rewardGroupId)
                       .SelectMany(x1 => Masters.SingleStageRewardLotDB.GetList().FindAll(x2 => x2.lotGroupId == x1.lotGroupId))
                       .ToArray();

        foreach (var data in lotDatas)
        {
            if (!rewards.Exists(x => x.itemType == data.itemType && x.itemId == data.itemId))
            {
                rewards.Add(new RewardData {
                    itemType = data.itemType, itemId = data.itemId, itemNum = data.itemNum
                });
            }
        }

        //初回報酬
        var firstReward = Masters.SingleStageFirstRewardDB
                          .GetList()
                          .Where(x => x.groupId == stageData.rewardFirstGroupId)
                          .Select(x => new RewardData {
            itemType = x.itemType, itemId = x.itemId, itemNum = x.amount, isFirstReward = true
        });

        if (isCleared)
        {
            //初回報酬入手済みなら末尾に追加
            rewards.AddRange(firstReward);
        }
        else
        {
            //初回報酬未入手なら先頭に追加
            rewards.InsertRange(0, firstReward);
        }

        //ローダー準備
        var loader = new AssetListLoader(rewards
                                         .Select(x => CommonIconUtility.GetItemInfo(x.itemType, x.itemId))
                                         .Where(x => !x.IsCommonSprite())
                                         .Select(x => new AssetLoader <Sprite>(x.GetSpritePath())));

        //ロード中はタッチブロック
        SharedUI.Instance.DisableTouch();

        //ロード
        loader.Load(() =>
        {
            //タッチブロック解除
            SharedUI.Instance.EnableTouch();

            //ダイアログ開く
            var dialog  = SharedUI.Instance.ShowSimpleDialog();
            var content = dialog.AddContent(prefab);
            content.Set(dialog, stageData, rank, rewards, loader, onStageStart);
        });
    }
    /// <summary>
    /// 内容構築
    /// </summary>
    private void Set(
        SimpleDialog dialog,
        Master.SingleStageData stageData,
        Rank rank,
        List <RewardData> rewards,
        AssetListLoader loader,
        Action <uint> onStageStart)
    {
        this.dialog       = dialog;
        this.stageData    = stageData;
        this.isCleared    = rank > Rank.None;
        this.rewards      = rewards;
        this.loader       = loader;
        this.onStageStart = onStageStart;
        var worldData = Masters.SingleWorldDB.FindById(this.stageData.worldId);

        //ワールド名、ステージ名
        this.worldNameText.text = worldData.name;
        this.stageNameText.text = this.stageData.name;
        LayoutRebuilder.ForceRebuildLayoutImmediate(this.nameArea);

        //星マーク
        for (int i = 0; i < this.star.Length; i++)
        {
            this.star[i].enabled = ((int)rank - 2) > i;
        }

        //報酬データが8個以下なら
        if (this.rewards.Count < 9)
        {
            //非スクロールエリアに報酬アイコンを生成する
            this.nonScrollRewardArea.gameObject.SetActive(true);
            this.rewardScrollView.gameObject.SetActive(false);

            for (int i = 0; i < this.rewards.Count; i++)
            {
                var icon = Instantiate(this.rewardIconPrefab, this.nonScrollRewardArea.transform, false);
                this.OnUpdateRewardIconView(icon.gameObject, i);
            }
        }
        //報酬データが9個以上なら
        else
        {
            //スクロールエリアに報酬アイコンを生成する
            this.nonScrollRewardArea.gameObject.SetActive(false);
            this.rewardScrollView.gameObject.SetActive(true);
            this.rewardScrollView.Initialize(this.rewardIconPrefab.gameObject, this.rewards.Count, this.OnUpdateRewardIconView);
        }

        //必要コイン数
        this.needCoinNumText.text = this.stageData.needCoin.ToString();
        LayoutRebuilder.ForceRebuildLayoutImmediate(this.coinArea);

        //YesNoボタン追加:挑戦する、キャンセル
        var btnGroup        = this.dialog.AddButton(1);
        var challengeButton = btnGroup.buttons[0];

        challengeButton.text.text    = Masters.LocalizeTextDB.Get("Challenge");
        challengeButton.image.sprite = SharedUI.Instance.commonAtlas.GetSprite(SharkDefine.NO_BTN_SPRITE_NAME);
        challengeButton.onClick      = this.OnClickChallengeButton;

        //必要コイン数に満たない場合
        var userData = UserData.Get();

        if (userData == null || userData.coin < this.stageData.needCoin)
        {
            //グレースケールにして挑戦するボタンを押せなくする
            challengeButton.button.interactable = false;
            challengeButton.image.material      =
                challengeButton.text.material   = SharedUI.Instance.grayScaleMaterial;
        }

        //Closeボタン追加
        this.dialog.closeButtonEnabled = true;
    }