FOOTER_MENU_TYPE ConvertCategoryToFooterMenuType(MAINMENU_CATEGORY category) { FOOTER_MENU_TYPE type = FOOTER_MENU_TYPE.NONE; switch (category) { case MAINMENU_CATEGORY.UNIT: //type = FOOTER_MENU_TYPE.UNITS; break; case MAINMENU_CATEGORY.SHOP: //type = FOOTER_MENU_TYPE.SHOP; break; case MAINMENU_CATEGORY.HOME: type = FOOTER_MENU_TYPE.HOME; break; case MAINMENU_CATEGORY.GACHA: type = FOOTER_MENU_TYPE.SCRATCH; break; case MAINMENU_CATEGORY.QUEST: type = FOOTER_MENU_TYPE.QUEST; break; } return(type); }
/// <summary> /// メニュータイプ設定 /// </summary> /// <param name="type"></param> public void setMenuType(FOOTER_MENU_TYPE type) { var enableFlagReferenceMap = new Dictionary <int, M4uProperty <bool> > { { (int)FOOTER_MENU_TYPE.HOME, homeenable }, { (int)FOOTER_MENU_TYPE.UNITS, unitenable }, { (int)FOOTER_MENU_TYPE.SCRATCH, scratchenable }, { (int)FOOTER_MENU_TYPE.SHOP, shopenable }, { (int)FOOTER_MENU_TYPE.QUEST, helpenable } }; m_CurrentMenuType = type; for (int _index = 0; _index < (int)FOOTER_MENU_TYPE.MAX; _index++) { enableFlagReferenceMap[_index].Value = m_ActiveFooterTouch; } }
// Use this for initialization void Start() { setMenuType(FOOTER_MENU_TYPE.HOME); FrameImage = ResourceManager.Instance.Load("big_footer", ResourceType.Menu); MainMenuManager.Instance.RegisterOnCategoryChangedCallback((MAINMENU_CATEGORY category) => { FOOTER_MENU_TYPE type = ConvertCategoryToFooterMenuType(category); if (type != m_CurrentMenuType && type != FOOTER_MENU_TYPE.NONE && type != FOOTER_MENU_TYPE.MAX) { setMenuType(type); } UpdateButtonSelected(category); UpdateBufEvent(); }); UpdateButtonSelected(MainMenuManager.Instance.currentCategory); IsHelpBufEvent = false; }
private void openSubMenu(FOOTER_MENU_TYPE _type, MAINMENU_CATEGORY _category) { if (m_FooterSubMenu != null) { MAINMENU_CATEGORY _prevCategory = m_FooterSubMenu.Category; closeSubMenu(); if (_prevCategory == _category) { return; } } if (m_SubMenuObject == null) { if (_type != FOOTER_MENU_TYPE.UNITS) { m_SubMenuObject = Resources.Load("Prefab/MainMenu/FooterSubMenu") as GameObject; } else { m_SubMenuObject = Resources.Load("Prefab/MainMenu/FooterSubMenuDouble") as GameObject; } if (m_SubMenuObject == null) { return; } } //ユニットのときはスキルアップイベントのチェック if (_category == MAINMENU_CATEGORY.UNIT) { CheckSkillUpEvent(); } GameObject _insObj = Instantiate(m_SubMenuObject); if (_insObj == null) { return; } _insObj.transform.SetParent(ButtonList[(int)_type].transform, false); _insObj.transform.SetParent(subRoot.transform, true); m_FooterSubMenu = _insObj.GetComponent <FooterSubMenu>(); m_FooterSubMenu.setup(_category); m_FooterSubMenu.DidSelectClose = () => { closeSubMenu(); }; m_FooterSubMenu.DidSelectCancel = () => { closeSubMenu(); }; m_FooterSubMenu.Show(); foreach (var eachButton in m_buttons) { eachButton.isSelected = eachButton.IsCategoryOf(_category); } AndroidBackKeyManager.Instance.StackPush(m_FooterSubMenu.gameObject, OnSelectBackKey); }
/// <summary> /// メニュー選択 /// </summary> /// <param name="type"></param> public void OnTouchMenu(FOOTER_MENU_TYPE type) { bool bChange = false; if (MainMenuManager.HasInstance) { if (m_CurrentMenuType == type && MainMenuManager.Instance.CheckPageActive(seqList[(int)type])) { if (IsSubMenuOpened()) { closeSubMenu(); } return; } switch (type) { case FOOTER_MENU_TYPE.UNITS: if (m_FooterSubMenu != null && m_FooterSubMenu.Category == MAINMENU_CATEGORY.UNIT) { SoundUtil.PlaySE(SEID.SE_MENU_RET); } else { SoundUtil.PlaySE(SEID.VOICE_INGAME_MM_FOOT_UNIT); } openSubMenu(type, MAINMENU_CATEGORY.UNIT); break; case FOOTER_MENU_TYPE.SHOP: if (m_FooterSubMenu != null && m_FooterSubMenu.Category == MAINMENU_CATEGORY.SHOP) { SoundUtil.PlaySE(SEID.SE_MENU_RET); } else { SoundUtil.PlaySE(SEID.VOICE_INGAME_MM_FOOT_SHOP); } openSubMenu(type, MAINMENU_CATEGORY.SHOP); break; case FOOTER_MENU_TYPE.QUEST: { SoundUtil.PlaySE(SEID.VOICE_INGAME_MM_FOOT_QUEST); //クエスト選択画面と成長ボス選択画面以外は選択保存情報へ遷移 if (MainMenuManager.Instance.WorkSwitchPageNow != MAINMENU_SEQ.SEQ_QUEST_SELECT && MainMenuManager.Instance.WorkSwitchPageNow != MAINMENU_SEQ.SEQ_CHALLENGE_SELECT) { //選択保存情報へ遷移 bChange = MainMenuParam.SetupSaveSelect(); } if (bChange == false) { //失敗した場合はデフォルト位置へ MainMenuParam.m_RegionID = MasterDataUtil.GetRegionIDFromCategory(MasterDataDefineLabel.REGION_CATEGORY.STORY); bChange = MainMenuManager.Instance.AddSwitchRequest(seqList[(int)type], false, false); } closeSubMenu(); } break; case FOOTER_MENU_TYPE.SCRATCH: { SoundUtil.PlaySE(SEID.VOICE_INGAME_MM_FOOT_SCRATCH); MainMenuParam.m_GachaMaster = null; MasterDataGacha[] gachaArray = MasterDataUtil.GetActiveGachaMaster(); if (gachaArray != null && gachaArray.Length > 0) { MainMenuParam.m_GachaMaster = gachaArray[0]; } bChange = MainMenuManager.Instance.AddSwitchRequest(seqList[(int)type], false, false); closeSubMenu(); } break; case FOOTER_MENU_TYPE.HOME: { SoundUtil.PlaySE(SEID.VOICE_INGAME_MM_HOME); bChange = MainMenuManager.Instance.AddSwitchRequest(seqList[(int)type], false, false); closeSubMenu(); } break; } } else { if (m_CurrentMenuType == type) { if (IsSubMenuOpened()) { closeSubMenu(); } return; } bChange = true; } if (bChange) { setMenuType(type); } }