/// <summary> /// リストのオブジェクトが生成された /// </summary> void OnChangedCollection() { if (TabGroupObjectList.Count > 0) { //ScrollContentが機能した後に実行する StartCoroutine(DelayScrollContent(() => { // リストの表示位置設定 for (int i = 0; i < TabGroupList.Count; ++i) { for (int j = 0; j < TabGroupList[i].SubTabList.Count; ++j) { SubTabContext subTab = TabGroupList[i].SubTabList[j]; if (subTab.IsSelect) { Toggle toggle = TabGroupObjectList[i].GetComponentInChildren <Toggle>(); if (toggle != null) { toggle.isOn = true; m_CarouselToggler.CenterOnToggled(); } return; } } } })); } }
private void LoadIconResource() { for (int i = 0; i < TabGroupList.Count; ++i) { for (int j = 0; j < TabGroupList[i].SubTabList.Count; ++j) { SubTabContext subTab = TabGroupList[i].SubTabList[j]; if (subTab.GachaMaster == null) { continue; } string url = ""; if (subTab.GachaMaster.url_img == string.Empty) { url = string.Format(GlobalDefine.GetScratchIconhUrl(), subTab.GachaMaster.fix_id); } else { url = string.Format(GlobalDefine.GetScratchIconhUrl(), subTab.GachaMaster.url_img); } WebResource.Instance.GetSprite(url, (Sprite sprite) => { subTab.IconImage = sprite; }, () => { subTab.IconImage = ResourceManager.Instance.Load("dummy_scratch_icon", ResourceType.Common); }); } } }
/// <summary> /// /// </summary> /// <param name="_tab"></param> /// <return>true:切り替えた false:切り替えてない</return> private bool OnSelectTab(SubTabContext _tab) { if (!MainMenuManager.HasInstance || MainMenuManager.Instance.IsPageSwitch()) { return(false); } if (m_SubMenuType == SUB_TAB_MENU_TYPE.SCRATCH) { //同じガチャには遷移しない if (MainMenuParam.m_GachaMaster.fix_id == _tab.GachaMaster.fix_id) { return(false); } MainMenuParam.m_GachaMaster = _tab.GachaMaster; ((MainMenuScratch)MainMenuManager.Instance.MainMenuSeqPageNow).changeScratch(_tab.Index); changeSubTab(MAINMENU_SEQ.SEQ_GACHA_MAIN); } else { MainMenuManager.Instance.AddSwitchRequest(_tab.m_MenuSeq, false, false); } return(true); }
/// <summary> /// サブタブ変更 /// </summary> /// <param name="_seq"></param> private void changeSubTab(MAINMENU_SEQ _seq) { for (int i = 0; i < TabGroupList.Count; ++i) { for (int j = 0; j < TabGroupList[i].SubTabList.Count; ++j) { SubTabContext subTab = TabGroupList[i].SubTabList[j]; if (m_SubMenuType == SUB_TAB_MENU_TYPE.FRIEND) { subTab.setFlag(subTab.m_MenuSeq == _seq); } else if (m_SubMenuType == SUB_TAB_MENU_TYPE.SCRATCH) { subTab.setFlag(MainMenuParam.m_GachaMaster == subTab.GachaMaster); } if (subTab.IsSelect == true) { Toggle toggle = TabGroupObjectList[i].GetComponentInChildren <Toggle>(); if (toggle != null) { toggle.isOn = true; } } } } m_CarouselToggler.CenterOnToggled(); }
/// <summary> /// 指定したインデックスのパーティ情報を取得する /// </summary> /// <param name="index"></param> /// <returns></returns> public SubTabContext GetSubTab(int index) { for (int i = 0; i < TabGroupList.Count; ++i) { for (int j = 0; j < TabGroupList[i].SubTabList.Count; ++j) { SubTabContext subTab = TabGroupList[i].SubTabList[j]; if (subTab.Index == index) { return(subTab); } } } return(null); }
/// <summary> /// サブタブ構築(スクラッチ用) /// </summary> /// <param name="_seq"></param> private void setupSubTabScratch(MAINMENU_SEQ _seq) { if (TutorialManager.IsExists == true) { return; } MasterDataGacha[] gachaArray = MasterDataUtil.GetActiveGachaMaster(); if (gachaArray == null || gachaArray.Length == 0) { return; } int index = 0; for (int j = 0; j < gachaArray.Length; j++) { if (gachaArray[j] == null) { continue; } var model = new ListItemModel((uint)index++); SubTabContext _newTab = new SubTabContext(model); _newTab.m_MenuSeq = MAINMENU_SEQ.SEQ_GACHA_MAIN; _newTab.IconImage = null; _newTab.IsViewTxtImage = false; _newTab.TabName = ""; _newTab.GachaMaster = gachaArray[j]; _newTab.AlertCount = (int)MasterDataUtil.GetGachaCountFromMaster(gachaArray[j], GlobalDefine.VALUE_VIEW_MAX_INFO, true); _newTab.setFlag(MainMenuParam.m_GachaMaster == gachaArray[j]); _newTab.IsViewFlag = MasterDataUtil.IsFirstTimeFree(gachaArray[j]); AddData(_newTab); model.OnClicked += () => { if (OnSelectTab(_newTab) == true) { SoundUtil.PlaySE(SEID.SE_MM_A03_TAB); } }; } LoadIconResource(); }
/// <summary> /// サブタブ構築(その他用) /// </summary> /// <param name="_seq"></param> private void setupSubTabFriend(MAINMENU_SEQ _seq) { uint totalWaitMe = 0; uint totalWaitHim = 0; UserDataAdmin.Instance.GetFriendInfo(ref totalWaitMe, ref totalWaitHim); for (int j = 0; j < friendSubTabData.Length; j++) { int index = j; var model = new ListItemModel((uint)index); SubTabContext _newTab = new SubTabContext(model); _newTab.m_MenuSeq = friendSubTabData[j].seq; _newTab.IconImage = ResourceManager.Instance.Load(friendSubTabData[j].icon); _newTab.IsViewTxtImage = true; _newTab.TxtImage = ResourceManager.Instance.Load(friendSubTabData[j].text); _newTab.GachaMaster = null; _newTab.IsViewFlag = false; switch (friendSubTabData[j].seq) { case MAINMENU_SEQ.SEQ_FRIEND_LIST_WAIT_ME: _newTab.AlertCount = (int)totalWaitMe; break; case MAINMENU_SEQ.SEQ_FRIEND_LIST_WAIT_HIM: _newTab.AlertCount = 0; break; default: _newTab.AlertCount = 0; break; } _newTab.setFlag(_newTab.m_MenuSeq == _seq); AddData(_newTab); model.OnClicked += () => { if (OnSelectTab(_newTab) == true) { SoundUtil.PlaySE(SEID.SE_MM_A03_TAB); } }; } }
public void AddData(SubTabContext subtab) { if (TabGroupList.Count == 0) { SubTabGroupContext addGroup = new SubTabGroupContext(); addGroup.SubTabList.Add(subtab); TabGroupList.Add(addGroup); } else { SubTabGroupContext group = TabGroupList[TabGroupList.Count - 1]; if (group.SubTabList.Count < 5) { group.SubTabList.Add(subtab); } else { SubTabGroupContext addGroup = new SubTabGroupContext(); addGroup = new SubTabGroupContext(); addGroup.SubTabList.Add(subtab); TabGroupList.Add(addGroup); } } }