1
This commit is contained in:
@@ -440,6 +440,13 @@ public class SitPosData : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
|
||||
{
|
||||
var zsDelay = currentZhanShenData as ZhanShenTurretData;
|
||||
_laserPrepWait = zsDelay != null ? zsDelay.laserFXDelay : 0f;
|
||||
// ⭐ 锁定建立:刷新 FireIndex=1 → Fire0→Fire1 过渡生效,激光动画的 SMB 事件负责开门
|
||||
currentZhanShenData?.RefreshWarGodFireMode();
|
||||
}
|
||||
else if (!lockActive && _laserLockActive)
|
||||
{
|
||||
// ⭐ 锁定丢失:刷新 FireIndex=0 → 退回 Fire0 子弹动画(过渡条件 FireIndex==0)
|
||||
currentZhanShenData?.RefreshWarGodFireMode();
|
||||
}
|
||||
_laserLockActive = lockActive;
|
||||
|
||||
|
||||
@@ -492,6 +492,22 @@ public class TurretData : MonoBehaviour
|
||||
&& sit.monCotl_Lock_Position.gameObject.activeInHierarchy;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 锁定状态变化瞬间刷新 FireIndex(0=子弹 Fire0 / 1=激光 Fire1):
|
||||
/// ChangeState 同状态早退不会重跑 PlayWarGodAnimator,边开火边锁定时 FireIndex 会停在旧值,
|
||||
/// 动画不切 Fire1、SMB 事件永不触发,特效只能等 laserFXDelay 兜底定时器“直接激活”。
|
||||
/// 锁定建立/丢失时调用本方法刷新参数 → Fire0↔Fire1 过渡(FireIndex 条件)立即生效,
|
||||
/// 特效显示由此完全交给 Fire1 上的 ZhanShenLaserLoopSMB 动画事件开门。
|
||||
/// </summary>
|
||||
public void RefreshWarGodFireMode()
|
||||
{
|
||||
if (!_warGodAnimMode || !_hasFireIndex) return;
|
||||
if (currState != TurretState.Attack
|
||||
&& currState != TurretState.LaserStart
|
||||
&& currState != TurretState.LaserLoop) return;
|
||||
SetNumericParam(fireIndexParam, _fireIndexType, IsLaserActive() ? 1 : 0);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 战神激光 loop 动画开始通知(ZhanShenLaserLoopSMB 状态机行为 / 剪辑动画事件殊途同归):
|
||||
/// 通知座位立即显示激光及全部特效(提前结束 laserFXDelay 等待)。
|
||||
|
||||
Reference in New Issue
Block a user