This commit is contained in:
2026-10-06 23:36:39 +08:00
parent 8592b9366c
commit 499eea39aa
10 changed files with 1445 additions and 1062 deletions
@@ -294,6 +294,14 @@ public class MonsterContral : MonoBehaviour
}
}
/// <summary>
/// ⭐ 是否延迟注册入鱼列表(子类控制,默认false=OnlyFish 创建时立即注册,现有鱼零影响)。
/// true=CreateFishManager.OnlyFish 跳过 RegisterFishInstance,
/// 由子类的激活方法(如 StealthBossControl.ActivateBoss)显式补注册。
/// 潜行Boss用:激活前不入鱼列表 → 自动锁定枚举/技能选鱼/服务端击杀通知全部找不到它。
/// </summary>
public virtual bool DeferFishRegister => false;
/// <summary>
/// 切换锁定点(不切换锁定对象)。
/// ⭐ 用于小白龙等切换模型/动画片段后锁定点也随之变化的情况:
@@ -105,8 +105,12 @@ public class MonsterControl_BossBase : MonsterContral
isLocalCoin = false;
killerSitPos = -1;
var res = FishResourcesData.fishResourcesDatasDic[fishTypeID];
if (res.showAudio != null && res.showAudio.Count > 0)
// ⭐ TryGetValue 判空:fishTypeID 未配置的 Boss(如 7005 预制体 fishTypeID=0)直接索引会抛
// KeyNotFoundException——OnEnable 是 Unity 生命周期回调,异常会中断整条 base 调用链,
// 子类(如 StealthBossControl)在 base.OnEnable() 之后的潜行初始化会全部跳过,潜行失效。
// 查不到时仅跳过出场音效,不影响其他逻辑
if (FishResourcesData.fishResourcesDatasDic.TryGetValue(fishTypeID, out var res)
&& res.showAudio != null && res.showAudio.Count > 0)
AudioManager.Instance.PlayerFX(res.showAudio[Random.Range(0, res.showAudio.Count)]);
}