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()
{