1
This commit is contained in:
@@ -1039,8 +1039,10 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
|
||||
}
|
||||
|
||||
mc.fishenum = (FishTypeEnum)fishType.fishType;
|
||||
// 按鱼类型放入对应字典
|
||||
RegisterFishInstance(mc, fishType.fishType);
|
||||
// ⭐ 潜行Boss(DeferFishRegister=true)跳过注册:等子类 ActivateBoss() 激活时再入列表。
|
||||
// 激活前不在鱼列表 → 自动锁定枚举/技能选鱼/服务端击杀通知全部找不到此Boss
|
||||
if (!mc.DeferFishRegister)
|
||||
RegisterFishInstance(mc, fishType.fishType);
|
||||
|
||||
mc.Init(createFishData.moveLineId, spawnDic[createFishData.fishNumber].times);
|
||||
|
||||
@@ -1055,8 +1057,11 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>将鱼实例注册到全局字典及对应分类字典。</summary>
|
||||
private void RegisterFishInstance(MonsterContral mc, int fishTypeId)
|
||||
/// <summary>
|
||||
/// 将鱼实例注册到全局字典及对应分类字典。
|
||||
/// ⭐ public:潜行Boss(DeferFishRegister=true)由子类 ActivateBoss() 激活时显式调用补注册。
|
||||
/// </summary>
|
||||
public void RegisterFishInstance(MonsterContral mc, int fishTypeId)
|
||||
{
|
||||
// ⭐ 检测 guid 冲突:如果 guid 已存在,说明有重复出鱼(可能是 sync 模式重发),
|
||||
// 旧鱼会被覆盖变成野鱼(无法通过 Id_DieFish_NotFX 销毁)
|
||||
@@ -1809,6 +1814,11 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
|
||||
// ⭐ 清除座位锁定引用:炮台不再对着死亡的鱼
|
||||
ClearLockOnFish(fishId);
|
||||
|
||||
// ⭐ 死亡优先于冰冻:见 Ws_DieFish 里的同名说明,否则冰冻期间被打死的鱼
|
||||
// 动画流程被 speed=0/时间轴定格卡住,可能不消失
|
||||
if (isFrozen)
|
||||
currGameType?.UnfreezeFishAnimations(monster);
|
||||
|
||||
// 👁 调试:记录每架掉金币飞机的实际坐标,便于对比"其他位置掉金币"来源
|
||||
Debug.Log($"[掉金币坐标] fishId={fishId} 飞机坐标={monster.transform.position} 金币飞向={v3Point} isLocal={isLocal} 调用栈={System.Environment.StackTrace}");
|
||||
|
||||
@@ -2339,6 +2349,14 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
|
||||
if (!dieFishCalled)
|
||||
monster.DieFish(killFish);
|
||||
|
||||
// ⭐ 冰冻中被打死的鱼必须脱离冰冻定格(死亡优先于冰冻):
|
||||
// 冰冻是把动画停住(Animator.speed=0 / Timeline 定格 / Spine timeScale=0),
|
||||
// 而不少鱼的"消失"依赖动画流程推进,例如雷皇龙/金龙靠 FLZY_BOSS_AnimatorLeave
|
||||
// 的 Animator 状态退出回调回池 → 不停下来状态机永不退出 → 鱼打死了也不消失。
|
||||
// 放在 DieFish 之后:要覆盖掉个别 Boss 在自己的 DieFish 里设置的 animator.speed=0。
|
||||
if (isFrozen)
|
||||
currGameType?.UnfreezeFishAnimations(monster);
|
||||
|
||||
MonsterDieList.Instance.SmallHuangYiHuang(
|
||||
monster.transform.position,
|
||||
monster.monsterData.fishTypeConfig.fishNumber, 1000);
|
||||
|
||||
Reference in New Issue
Block a user