This commit is contained in:
2026-10-11 16:51:07 +08:00
parent 65ccfce49e
commit 32f669ec6a
40 changed files with 820 additions and 88 deletions
@@ -158,10 +158,22 @@ public class TurretData : MonoBehaviour
private void OnEnable()
{
// ⭐ 状态缓存必须跟着 OnEnable 实际播的动画走:这里直接播 Idle(不走 ChangeState),
// 所以必须手动把 currState 一起重置。否则反复激活(切炮台/座位隐藏恢复/对象池复用)后
// currState 会停在 Attack,之后真正的 ChangeState(Attack) 被"同状态早退"吃掉 →
// 炮台停在错误状态(表现为该攻击时不出手 / 不该攻击时一直在攻击状态)。
currState = TurretState.Idle;
PlayState(TurretState.Idle);
BindAddDownButtons(); // ⭐ XJMH 加减炮倍:炮台上的 +/- 绑定点击(每次激活重绑,幂等)
}
/// <summary>
/// 当前动画状态(只读)。调用方(GameMainPanel)用它在"这一帧没开火"时判断要不要补发 Idle,
/// 避免每帧重复广播状态。注意:状态由 OnStateChange 指向的那个 TurretData 接收
/// (战神装备中指向战神,见 SitPosData.LoadZhanShen)。
/// </summary>
public TurretState CurrState => currState;
// ==================== XJMH 加减炮倍按钮绑定 ====================
// 炮台上的 obj_Add / obj_Down(物体名 Up / Down)在预制体里没有 Button 组件、也没有任何代码绑定
// → 点击无反应。这里在炮台激活时统一补 Button + 绑定: