static public UILevelUp GetInstance() { UILevelUp self = UIManager.Singleton.GetUIWithoutLoad <UILevelUp>(); if (self == null) { self = UIManager.Singleton.LoadUI <UILevelUp>("UI/UILevelUp", UIManager.Anchor.Center); } return(self); }
/// <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); }); }); }