1
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user