using FairyGUI; using UI.Main; using UI.CommonGame; using UnityEngine; using System.Collections.Generic; namespace GFGGame { public class MainUIView : BaseView { private UI_MainUI _ui; private GameObject _scenePrefab; private GameObject _sceneObject; private ValueBarController _valueBarController; private float effectTime = 0.7f; private bool isOpen = false; private GButton _btnGongGao; private GButton _btnHaoYou; private GButton _btnYouJian; private GButton _btnRenWu; private GButton _btnPengYouQuan; private GButton _btnJInShu; private GButton _btnTianGong; private GButton _btnStore; private GButton _btnTuJian; private GameObject _effectObj0; private GoWrapper _wrapper0; private GameObject _effectObj1; private GoWrapper _wrapper1; private GameObject _effectObj2; private GoWrapper _wrapper2; private GameObject _effectObj3; private GoWrapper _wrapper3; private GameObject _effectObj4; private GoWrapper _wrapper4; private GameObject _effectObj0_1; private GoWrapper _wrapper0_1; private GameObject _effectObj1_1; private GoWrapper _wrapper1_1; private GameObject _effectObj2_1; private GoWrapper _wrapper2_1; private GameObject _effectObj3_1; private GoWrapper _wrapper3_1; private GameObject _effectObj4_1; private GoWrapper _wrapper4_1; private GameObject _effectObj5; private GoWrapper _wrapper5; public override void Dispose() { _valueBarController.Dispose(); _valueBarController = null; SceneController.DestroyObjectFromView(_effectObj0); SceneController.DestroyObjectFromView(_effectObj1); SceneController.DestroyObjectFromView(_effectObj2); SceneController.DestroyObjectFromView(_effectObj3); SceneController.DestroyObjectFromView(_effectObj4); SceneController.DestroyObjectFromView(_effectObj0_1); SceneController.DestroyObjectFromView(_effectObj1_1); SceneController.DestroyObjectFromView(_effectObj2_1); SceneController.DestroyObjectFromView(_effectObj3_1); SceneController.DestroyObjectFromView(_effectObj4_1); base.Dispose(); } protected override void Init() { base.Init(); packageName = UI_MainUI.PACKAGE_NAME; _ui = UI_MainUI.Create(); viewCom = _ui.target; isfullScreen = true; _scenePrefab = GFGAsset.Load(ResPathUtil.GetPrefabPath("SceneMain")); } protected override void OnInit() { base.OnInit(); _valueBarController = new ValueBarController(_ui.m_valueBar); _btnGongGao = _ui.m_list.GetChild("btnGongGao").asButton; _btnHaoYou = _ui.m_list.GetChild("btnHaoYou").asButton; _btnYouJian = _ui.m_list.GetChild("btnYouJian").asButton; _btnRenWu = _ui.m_list.GetChild("btnRenWu").asButton; _btnPengYouQuan = _ui.m_list.GetChild("btnPengYouQuan").asButton; _btnStore = _ui.m_list.GetChild("btnStore").asButton; _btnTianGong = _ui.m_list.GetChild("btnTianGong").asButton; _btnTuJian = _ui.m_list.GetChild("btnTuJian").asButton; _btnJInShu = _ui.m_list.GetChild("btnJInShu").asButton; _btnGongGao.visible = false; _btnHaoYou.visible = false; _btnRenWu.visible = false; _btnPengYouQuan.visible = false; _btnJInShu.visible = false; _btnTianGong.visible = false; _ui.m_btnMain.target.onTouchBegin.Add(OnClickBtnMain); _ui.m_btnHuanZhuang.target.onTouchBegin.Add(OnClickBtnHuanZhuang); _ui.m_btnZhaiXing.target.onTouchBegin.Add(OnClickBtnZhaiXing); _ui.m_btnXiuFang.target.onTouchBegin.Add(OnClickBtnXiuFang); _ui.m_btnCiPai.target.onTouchBegin.Add(OnClickBtnCiPai); _ui.m_headBar.target.onClick.Add(OnClickHeadBar); _btnStore.onClick.Add(OnClickBtnStore); _btnTuJian.onClick.Add(OnClickBtnTuJian); _btnYouJian.onClick.Add(OnClickBtnYouJian); } protected override void OnShown() { base.OnShown(); _ui.m_btnChange.selected = true; _ui.m_headBar.m_txtName.text = RoleDataManager.roleName; if (_sceneObject == null) { _sceneObject = GameObject.Instantiate(_scenePrefab); } SceneController.UpdateMainScene(_sceneObject); UpdateRoleLvl(); _valueBarController.OnShown(); AddEffect(); TryGuide(); Timers.inst.AddUpdate(Update); } protected override void OnHide() { base.OnHide(); GuideController.HideGuide(); if (_sceneObject != null) { GameObject.Destroy(_sceneObject); _sceneObject = null; } _valueBarController.OnHide(); Timers.inst.Remove(Update); Timers.inst.Remove(UpdateToCheckGuide); } private void AddEffect() { string resPath0 = ResPathUtil.GetViewEffectPath("ui_zjm", "ui_xf_tx"); SceneController.AddObjectToView(_effectObj0, _wrapper0, _ui.m_btnXiuFang.m_holder, resPath0, out _effectObj0, out _wrapper0); SceneController.AddObjectToView(_effectObj1, _wrapper1, _ui.m_btnHuanZhuang.m_holder, resPath0, out _effectObj1, out _wrapper1); SceneController.AddObjectToView(_effectObj2, _wrapper2, _ui.m_btnZhaiXing.m_holder, resPath0, out _effectObj2, out _wrapper2); SceneController.AddObjectToView(_effectObj3, _wrapper3, _ui.m_btnCiPai.m_holder, resPath0, out _effectObj3, out _wrapper3); string resPath1 = ResPathUtil.GetViewEffectPath("ui_zjm", "ui_zzl_tx"); SceneController.AddObjectToView(_effectObj4, _wrapper4, _ui.m_btnMain.m_holder, resPath1, out _effectObj4, out _wrapper4); string resPath3 = ResPathUtil.GetViewEffectPath("ui_zjm", "ui_zjm_dj"); SceneController.AddObjectToView(_effectObj0_1, _wrapper0_1, _ui.m_btnXiuFang.m_holder1, resPath3, out _effectObj0_1, out _wrapper0_1); SceneController.AddObjectToView(_effectObj1_1, _wrapper1_1, _ui.m_btnHuanZhuang.m_holder1, resPath3, out _effectObj1_1, out _wrapper1_1); SceneController.AddObjectToView(_effectObj2_1, _wrapper2_1, _ui.m_btnZhaiXing.m_holder1, resPath3, out _effectObj2_1, out _wrapper2_1); SceneController.AddObjectToView(_effectObj3_1, _wrapper3_1, _ui.m_btnCiPai.m_holder1, resPath3, out _effectObj3_1, out _wrapper3_1); SceneController.AddObjectToView(_effectObj4_1, _wrapper4_1, _ui.m_btnMain.m_holder1, resPath3, out _effectObj4_1, out _wrapper4_1); string resPath2 = ResPathUtil.GetViewEffectPath("ui_zjm", "ui_zjm_tx"); SceneController.AddObjectToView(_effectObj5, _wrapper5, _ui.m_headBar.m_holder, resPath2, out _effectObj5, out _wrapper5); } private void OnClickBtnMain() { if (isOpen) return; isOpen = true; _ui.m_btnMain.m_holder1.visible = true; Timers.inst.Add(effectTime, 1, (param) => { _ui.m_btnMain.m_holder1.visible = false; // this.Hide(); ViewManager.Show(ViewName.STORY_CHAPTER_LIST_VIEW, null, new object[] { ViewName.MAINUI_VIEW, this.viewData }); isOpen = false; ; }); } private void OnClickBtnHuanZhuang() { if (isOpen) return; isOpen = true; _ui.m_btnHuanZhuang.m_holder1.visible = true; Timers.inst.Add(effectTime, 1, (param) => { _ui.m_btnHuanZhuang.m_holder1.visible = false; this.Hide(); ViewManager.Show(ViewName.DRESS_UP_VIEW); isOpen = false; }); } private void OnClickBtnZhaiXing() { if (isOpen) return; isOpen = true; _ui.m_btnZhaiXing.m_holder1.visible = true; Timers.inst.Add(effectTime, 1, (param) => { _ui.m_btnZhaiXing.m_holder1.visible = false; Timers.inst.AddUpdate(UpdateToCheckGuide); ViewManager.Show(ViewName.LUCKY_BOX_VIEW, null, null, false, true); isOpen = false; }); } private void OnClickBtnXiuFang() { if (isOpen) return; isOpen = true; _ui.m_btnXiuFang.m_holder1.visible = true; Timers.inst.Add(effectTime, 1, (param) => { _ui.m_btnXiuFang.m_holder1.visible = false; Timers.inst.AddUpdate(UpdateToCheckGuide); ViewManager.Show(ViewName.XIU_FANG_VIEW, null, new object[] { ViewName.MAINUI_VIEW, this.viewData }); isOpen = false; }); } private void OnClickBtnCiPai() { if (isOpen) return; isOpen = true; _ui.m_btnCiPai.m_holder1.visible = true; Timers.inst.Add(effectTime, 1, (param) => { _ui.m_btnCiPai.m_holder1.visible = false; ViewManager.Show(ViewName.CARD_DETAIL_VIEW, null, new object[] { ViewName.MAINUI_VIEW, this.viewData }); isOpen = false; }); // List list = new List(); // list.Add("GFGGame.ClothingShopView"); // list.Add("GFGGame.LuckyBoxView"); // ViewManager.Show(list); } private void OnClickBtnStore() { Timers.inst.AddUpdate(UpdateToCheckGuide); ViewManager.Show(ViewName.RECHARGE_STORE_VIEW); } private void OnClickBtnTuJian() { Timers.inst.AddUpdate(UpdateToCheckGuide); ViewManager.Show(ViewName.FIELD_GUIDE_VIEW, null, new object[] { ViewName.MAINUI_VIEW, this.viewData }); } private void OnClickBtnYouJian() { ViewManager.Show(); } private void OnClickHeadBar() { ViewManager.Show(ViewName.ROLE_INFO_VIEW); } private void UpdateRoleLvl() { _ui.m_headBar.m_txtLvl.text = "" + RoleDataManager.lvl; } private void Update(object param) { if (Input.GetKeyDown(KeyCode.Escape) || Input.GetKeyDown(KeyCode.Home)) { Alert.Show("我会想你的") .SetLeftButton(true, "继续游戏") .SetRightButton(true, "退出游戏", (object data) => { Application.Quit(); }); } } private void UpdateToCheckGuide(object param) { if (this.viewCom != null && this.viewCom.parent != null) { int index = this.viewCom.parent.GetChildIndex(this.viewCom); if (index == this.viewCom.parent.numChildren - 1 && GRoot.inst.GetTopWindow() == null) { TryGuide(); Timers.inst.Remove(UpdateToCheckGuide); } } } private void TryGuide() { // TryGuideByGuideId(_ui.m_btnZhaiXing.target, ConstGuideId.MAIN_UI_BTN_ZHAI_XING, 1, false, "点击摘星按钮,进入抽奖界面") if (!GuideController.TryGuideLuckyBox(_ui.m_btnZhaiXing.target)) { if (GuideDataManager.GetGuideCount(ConstGuideId.MAIN_UI_BTN_ZHAI_XING) > 0 && GuideDataManager.GetGuideCount(ConstGuideId.MAIN_UI_BTN_HUAN_ZHUANG) <= 0) { GuideController.TryGuideByGuideId(_ui.m_btnHuanZhuang.target, ConstGuideId.MAIN_UI_BTN_HUAN_ZHUANG, 1, false, "在这里,可以自由搭配服饰和分享哦~"); } else if (GuideDataManager.GetGuideCount(ConstGuideId.MAIN_UI_BTN_HUAN_ZHUANG) > 0 && GuideDataManager.GetGuideCount(ConstGuideId.SUIT_SYNTHETIC_GUIDE) <= 0) { GuideController.TryGuideMainUIViewBtnXiuFang(_ui.m_btnXiuFang.target); } else if (GuideDataManager.GetGuideCount(ConstGuideId.SUIT_SYNTHETIC_GUIDE) > 0 && GuideDataManager.GetGuideCount(ConstGuideId.PHOTOGRAPH_GUIDE) <= 0) { GuideController.TryGuideOpenDressUpView(_ui.m_btnHuanZhuang.target); } else if (GuideDataManager.GetGuideCount(ConstGuideId.PHOTOGRAPH_GUIDE) > 0 && GuideDataManager.GetGuideCount(ConstGuideId.CARD_UP_STAR) <= 0) { GuideController.TryGuideMainUIViewBtnCiPai(_ui.m_btnCiPai.target); } } } } }