diff --git a/Assets/MyGame/aa/Game/XJMH/Boss/JiXieXie/PW_Enemy_3000.prefab b/Assets/MyGame/aa/Game/XJMH/Boss/JiXieXie/PW_Enemy_3000.prefab index 890155f9f..29b48a95b 100644 --- a/Assets/MyGame/aa/Game/XJMH/Boss/JiXieXie/PW_Enemy_3000.prefab +++ b/Assets/MyGame/aa/Game/XJMH/Boss/JiXieXie/PW_Enemy_3000.prefab @@ -817,10 +817,11 @@ MonoBehaviour: forwordXYZ: fishenum: 2 moveTime: 0 + yzGroupTimeOffset: 0 isyz: 0 yzID: colliderList: [] - lockPoint: {fileID: 0} + lockPoint: {fileID: 8708510642434550619} bingDongEffect: - {fileID: 0} needLockEvent: 0 @@ -868,6 +869,12 @@ Transform: type: 3} m_PrefabInstance: {fileID: 8704159038579725533} m_PrefabAsset: {fileID: 0} +--- !u!4 &8708510642434550619 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4990465544421254, guid: 75d387735e7c6cb4d806a8603178a855, + type: 3} + m_PrefabInstance: {fileID: 8704159038579725533} + m_PrefabAsset: {fileID: 0} --- !u!114 &8745352577998363756 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 114517790449158321, guid: 75d387735e7c6cb4d806a8603178a855, diff --git a/Assets/MyGame/aa/UI/Game/XJMH/GameMainPanel_XJMH.cs b/Assets/MyGame/aa/UI/Game/XJMH/GameMainPanel_XJMH.cs index 0861fc11b..3a46e6ff4 100644 --- a/Assets/MyGame/aa/UI/Game/XJMH/GameMainPanel_XJMH.cs +++ b/Assets/MyGame/aa/UI/Game/XJMH/GameMainPanel_XJMH.cs @@ -1991,8 +1991,11 @@ public class GameMainPanel_XJMH : GameMainPanel_FishBase // 本项目协议暂无该数据源,返还区保持隐藏(文案已按原版写好,后续有数据再接) // - ⭐ 父类给退出按钮绑的是确认框流程(StartLeaveCountdown);这里仅从 XJMH 侧重绑成原版倒计时, // 没拖 exitViewPanel 时保持父类确认框流程不变(父类代码零改动) - // - ⭐ 新旧退出入口统一:父类退出按钮 btn_TuiChu(拖了才生效)+ 通用设置列表里的"离开"项 - // (SittingListParent 下按名字找"离开"按钮,无需拖引用)都走同一套原版倒计时 + // - ⭐ 新旧退出入口(只改子类): + // ① 父类退出按钮 btn_TuiChu(拖了才生效)→ 直接进原版倒计时; + // ② 通用设置列表里的"离开"项(SittingListParent 下按名字找,无需拖引用) + // → 先弹退出选择面板(obj_DJSPanel:退出 / 返回游戏), + // 点"退出"再按正常退出流程走原版倒计时,点"返回游戏"只收起面板 private Transform _exitTimeText; // mTextTime(倒计时数字) private GameObject _exitRemainRoot; // mGORemainValue(返还区,原版默认隐藏) @@ -2018,12 +2021,12 @@ public class GameMainPanel_XJMH : GameMainPanel_FishBase } // ⭐ 通用设置列表里的"离开"项(Setting .prefab 子物体,名字叫"离开"): - // 老的通用离开入口统一成和新退出按钮一样的功能(原版倒计时),不再走确认框/无绑定 + // 先弹退出选择面板(退出 / 返回游戏),不直接进倒计时 var leaveEntry = SittingListParent != null ? FindButton(SittingListParent, "离开") : null; if (leaveEntry != null && leaveEntry != btn_TuiChu) { leaveEntry.onClick.RemoveAllListeners(); - leaveEntry.onClick.AddListener(OnXjmhExitClicked); + leaveEntry.onClick.AddListener(OpenXjmhExitChoose); } exitViewPanel.SetActive(false); // 初始收起 @@ -2052,6 +2055,45 @@ public class GameMainPanel_XJMH : GameMainPanel_FishBase _exitRoutine = StartCoroutine(ExitViewRoutine()); } + /// + /// 离开(设置列表项):先弹出退出选择面板(obj_DJSPanel), + /// 点"退出"(btn_QueRen)→ 收起选择面板并按正常退出流程走原版倒计时(OnXjmhExitClicked); + /// 点"返回游戏"(btn_QuXiao)→ 只收起选择面板,继续游戏。未拖选择面板时退化为直接倒计时。 + /// + private void OpenXjmhExitChoose() + { + if (_exitViewRunning) return; + + if (obj_DJSPanel == null) + { + OnXjmhExitClicked(); // 兜底:没有选择面板就直接走倒计时 + return; + } + if (obj_DJSPanel.activeSelf) return; // 选择面板已弹出 + + obj_DJSPanel.SetActive(true); + + // "退出":收起选择面板 → 正常退出流程(原版倒计时 → 退出加载界面) + if (btn_QueRen != null) + { + btn_QueRen.onClick.RemoveAllListeners(); + btn_QueRen.onClick.AddListener(() => + { + if (obj_DJSPanel != null) obj_DJSPanel.SetActive(false); + OnXjmhExitClicked(); + }); + } + // "返回游戏":只收起选择面板 + if (btn_QuXiao != null) + { + btn_QuXiao.onClick.RemoveAllListeners(); + btn_QuXiao.onClick.AddListener(() => + { + if (obj_DJSPanel != null) obj_DJSPanel.SetActive(false); + }); + } + } + /// /// 倒计时(照原版 InitView + StartTimer):先显示 3,之后每 1 秒 -1(2、1、0),每拍跳动; /// 数字走完(原版 time < 0)→ 收起面板并进入退出加载界面(父类 RequestLeaveRoom)。 diff --git a/Assets/MyGame/aa/UI/Home/Sub/ShopPanel.prefab b/Assets/MyGame/aa/UI/Home/Sub/ShopPanel.prefab index 3432a841d..21c8627dd 100644 --- a/Assets/MyGame/aa/UI/Home/Sub/ShopPanel.prefab +++ b/Assets/MyGame/aa/UI/Home/Sub/ShopPanel.prefab @@ -180,6 +180,7 @@ MonoBehaviour: tra_PrefabParent: {fileID: 2593991764569763154} tMP_GoldCoinNum: {fileID: 4744104396788068250} tMP_DiamondNum: {fileID: 2159850067905330218} + JQQD: {fileID: 7201541702779444174} btn_GlodCoins: {fileID: 5537998826616395512} btn_Diamond: {fileID: 2620338351533253861} btn_Prop: {fileID: 4565094349142477070} diff --git a/Assets/MyGame/aa/UI/Home/Sub/UIHome_BY_ShopPanel.cs b/Assets/MyGame/aa/UI/Home/Sub/UIHome_BY_ShopPanel.cs index 1fc8e98f9..a873c51ab 100644 --- a/Assets/MyGame/aa/UI/Home/Sub/UIHome_BY_ShopPanel.cs +++ b/Assets/MyGame/aa/UI/Home/Sub/UIHome_BY_ShopPanel.cs @@ -59,6 +59,9 @@ public class UIHome_BY_ShopPanel : SubUIBase base.Awake(); GameManager.Instance.OnUserDataChanged += RefreshUI; + // JQQD默认隐藏,只有当前Tab没有商品时才显示 + if (JQQD != null) JQQD.SetActive(false); + // VIP 面板按钮 if (btn_VIPPanel != null) btn_VIPPanel.onClick.AddListener(() => uIManager.ShowAsync(UIPanel.VIPPenel)); @@ -159,6 +162,7 @@ public class UIHome_BY_ShopPanel : SubUIBase obj.GetChild(2).GetChild(0).GetComponent().text = "" + item.diamond; obj.GetChild(3).GetComponent().text = item.gold.ToString(); } + UpdateJQQD(); }); }); @@ -211,6 +215,7 @@ public class UIHome_BY_ShopPanel : SubUIBase obj.GetChild(2).GetChild(0).GetComponent().text = "¥"+ item.money ; obj.GetChild(3).GetComponent().text = item.diamond.ToString(); } + UpdateJQQD(); }); }); @@ -315,6 +320,8 @@ public class UIHome_BY_ShopPanel : SubUIBase else if (item.saleType == 2) obj.GetChild(2).GetChild(0).GetComponent().text = "" + item.price; } + + UpdateJQQD(); }); // ==================== VIP经验包 ==================== @@ -386,6 +393,8 @@ public class UIHome_BY_ShopPanel : SubUIBase else if (item.saleType == 2) obj.GetChild(2).GetChild(0).GetComponent().text = "" + item.price; } + + UpdateJQQD(); }); // ==================== 炮台 ==================== @@ -532,6 +541,8 @@ public class UIHome_BY_ShopPanel : SubUIBase }); } } + + UpdateJQQD(); } /// 购买后重建当前装备 Tab 列表 @@ -552,6 +563,23 @@ public class UIHome_BY_ShopPanel : SubUIBase } } + /// 统计商品列表中实际存在的商品数量(Destroy延迟到帧末,需排除已销毁的旧对象) + private int GetAliveItemCount() + { + int count = 0; + for (int i = 0; i < tra_PrefabParent.childCount; i++) + if (tra_PrefabParent.GetChild(i) != null) + count++; + return count; + } + + /// 当前Tab没有商品时显示"JQQD"提示,有商品则隐藏(默认隐藏) + private void UpdateJQQD() + { + if (JQQD == null) return; + JQQD.SetActive(GetAliveItemCount() <= 0); + } + /// 统计背包里VIP经验类道具的总数量 private int GetBackPackVipExpCount() {