This commit is contained in:
2026-07-25 02:17:19 +08:00
parent cb0e4be017
commit 3d834c3c68
8 changed files with 110 additions and 5001 deletions
@@ -448,14 +448,15 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
});
}
/// <summary>开始离开游戏倒计时:10秒倒计时期间屏蔽帧同步和爆奖特效,结束后点确认才退出</summary>
/// <summary>打开离开游戏确认面板:点确认直接退出房间(无倒计时)</summary>
public void StartLeaveCountdown()
{
if (_isLeavingCountdown) return;
_isLeavingCountdown = true;
if (obj_DJSPanel != null) obj_DJSPanel.SetActive(true);
// 倒计时期间按钮禁用
if (btn_QueRen != null) btn_QueRen.interactable = false;
// ⭐ 无倒计时:确认按钮直接可点
if (btn_QueRen != null) btn_QueRen.interactable = true;
if (tmp_DJS != null) tmp_DJS.text = "确认";
// 绑定按钮事件
if (btn_QueRen != null)
{
@@ -473,8 +474,6 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
btn_QuXiao.onClick.RemoveAllListeners();
btn_QuXiao.onClick.AddListener(CancelLeaveCountdown);
}
if (_leaveCountdownCoroutine != null) StopCoroutine(_leaveCountdownCoroutine);
_leaveCountdownCoroutine = StartCoroutine(LeaveCountdownRoutine(10));
}
/// <summary>是否正在离开倒计时</summary>
@@ -689,6 +688,8 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
public async void LoadResources()
{
CreateFishManager.Instance.isResources = false;
// ⭐ 重置卸载标记,下次进入可重新加载
_resourcesUnloaded = false;
await AudioResourcesData.LoadAudioGame();
JinDuTiao.SetProgress(0.2f);
@@ -743,11 +744,60 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
public async void UnLoadResources()
{
if (_resourcesUnloaded) return;
CreateFishManager.Instance.ExitRoom();
CreateFishManager.Instance.isResources = false;
await FishResourcesData.UnLoadFishAssetsData();
await AudioResourcesData.UnLoadAudioGame();
await MonsterMoveLine.UnLoadBezier();
_resourcesUnloaded = true;
}
/// <summary>资源是否已卸载(避免 OnHide 重复卸载)</summary>
private bool _resourcesUnloaded = false;
/// <summary>
/// 带进度条的卸载流程(复用加入游戏时的 JinDuTiao 进度条)。
/// 卸载完成 + 末尾2秒等待后回调 onComplete,由调用方切换到 home 界面。
/// </summary>
public async void UnLoadResourcesWithProgress(Action onComplete = null)
{
if (_resourcesUnloaded)
{
onComplete?.Invoke();
return;
}
// ⭐ 复用加入游戏时的进度条
JinDuTiao.Show();
JinDuTiao.SetProgress(0.2f);
await FishResourcesData.UnLoadFishAssetsData();
JinDuTiao.SetProgress(0.4f);
await AudioResourcesData.UnLoadAudioGame();
JinDuTiao.SetProgress(0.6f);
await MonsterMoveLine.UnLoadBezier();
JinDuTiao.SetProgress(0.8f);
await Task.Delay(100);
CreateFishManager.Instance.ExitRoom();
CreateFishManager.Instance.isResources = false;
JinDuTiao.SetProgress(0.9f);
// ⭐ 最后2秒留着(和加入游戏流程一致)
await Task.Delay(2000);
// 标记已卸载,OnHide 跳过重复卸载
_resourcesUnloaded = true;
JinDuTiao.SetProgress(1);
await Task.Delay(300);
JinDuTiao.Hide();
onComplete?.Invoke();
}
#endregion