1
This commit is contained in:
@@ -443,6 +443,9 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
|
||||
/// <summary>进入房间:初始化生成系统并绑定游戏面板。</summary>
|
||||
public void EnterRoom(GameTypeEnum gameType)
|
||||
{
|
||||
// ⭐ 复位残留冰冻状态:冰冻中切房时旧面板倒计时未走完就销毁,
|
||||
// 不会触发 UnfreezeAllFish → isFrozen 残留 true → 新房间 OnFishSpawn 全部被拦,不出鱼
|
||||
ResetFreezeState();
|
||||
InitSpawnSystem(gameType);
|
||||
BindCurrentGamePanel();
|
||||
EnsureBJEffectRoot();
|
||||
@@ -1344,6 +1347,9 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
|
||||
{
|
||||
|
||||
//await Task.Delay(2000);
|
||||
// ⭐ 退房复位冰冻状态:冰冻中退房时旧面板倒计时未走完就销毁,
|
||||
// 不会触发 UnfreezeAllFish → isFrozen 残留 true → 污染下一个房间不出鱼
|
||||
ResetFreezeState();
|
||||
spawnList = null;
|
||||
spawnDic = null;
|
||||
// ⭐ 退房清理排队中的出鱼事件,防止旧房间残留鱼泄进下一个房间
|
||||
@@ -2333,6 +2339,23 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
|
||||
}
|
||||
|
||||
#region 冰冻技能
|
||||
/// <summary>
|
||||
/// 复位冰冻状态(退房/进房时调用):
|
||||
/// 清除 isFrozen 与冰冻记录,并停掉所有出鱼协程。
|
||||
/// ⭐ 若不复位:冰冻中切换房间时,旧面板的 15s 解冻倒计时随面板一起销毁,
|
||||
/// 永远不会调用 UnfreezeAllFish → isFrozen 残留 true →
|
||||
/// 新房间 OnFishSpawn 第一行 `if (isFrozen) return;` 把服务端所有出鱼全部拦掉 → 新房间不出鱼。
|
||||
/// ⭐ StopAllCoroutines:分帧出鱼协程里的 `while (isFrozen) yield return null;` 会一直挂起,
|
||||
/// 解冻复位后会继续把旧房间排队的鱼生成到新房间,必须一并停掉。
|
||||
/// </summary>
|
||||
public void ResetFreezeState()
|
||||
{
|
||||
isFrozen = false;
|
||||
frozenFishStates.Clear();
|
||||
frozenFishIsMoves.Clear();
|
||||
StopAllCoroutines();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 冰冻:记录所有鱼当前状态并强制切到 Idle(暂停移动+动画)
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user