diff --git a/Assets/MyGame/Scripts/Turret/SitPosData.cs b/Assets/MyGame/Scripts/Turret/SitPosData.cs index bcfc85326..1cfcf4ab6 100644 --- a/Assets/MyGame/Scripts/Turret/SitPosData.cs +++ b/Assets/MyGame/Scripts/Turret/SitPosData.cs @@ -176,8 +176,10 @@ public class SitPosData : MonoBehaviour btn_TurretMinus.onClick.AddListener(() => ChangeTurretMinusConsumeNum()); // ⭐ 散射起点球父对象兜底:预制体没拖引用就自动创建(挂 beij 下,炮台两侧), - // 保证 UpdateJGFXParentsActive 永远有对象可激活,不依赖 Inspector 配置 - EnsureJGFXParents(); + // 保证 UpdateJGFXParentsActive 永远有对象可激活,不依赖 Inspector 配置。 + // XJMH(星际迷航)没有战神/激光概念,跳过不给它加节点。 + if (turretControlMode != TurretControlMode.XJMH) + EnsureJGFXParents(); // XJMH 模式:隐藏钻石显示(只显示金币) if (turretControlMode == TurretControlMode.XJMH && tMP_DiamondNum != null) @@ -1175,12 +1177,17 @@ public class SitPosData : MonoBehaviour if (isLaserLocked) return; currentAngle = angle; - // ⭐ 炮台旋转只作用于 turretRotate,其余不改 - // ⭐ 必须用【世界旋转】:瞄准参考系是 beij(tra_CurrTurret 的父节点),currentAngle - // 已是和 beij 翻转抵消后的统一角度(aim-90),直接写世界旋转炮口即对准目标; - // 若改用本地旋转,上方座位 beij 的 180° 翻转会叠加进来,炮口反向 180° + + // ⭐ 两个分支(Normal / XJMH)分开处理: + // - Normal(turretRotate 已配置):旋转只作用于 turretRotate,用【世界旋转】——瞄准参考系是 beij + // (tra_CurrTurret 的父节点),currentAngle 已是和 beij 翻转抵消后的统一角度(aim-90), + // 直接写世界旋转炮口即对准目标;若用本地旋转,上方座位 beij 的 180° 翻转会叠加进来导致反向。 + // - XJMH(星际迷航,turretRotate 未配置):保持旧版行为,直接转 tra_CurrTurret(世界旋转), + // 该分支不动。 if (turretRotate != null) turretRotate.rotation = Quaternion.Euler(0, 0, angle); + else if (tra_CurrTurret != null) + tra_CurrTurret.rotation = Quaternion.Euler(0, 0, angle); } // -------------------------