1
This commit is contained in:
@@ -17,6 +17,24 @@ public enum TurretControlMode
|
||||
|
||||
public class SitPosData : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
|
||||
{
|
||||
public Button btn_SelectPaoBei; //点击打开关闭选择面板
|
||||
public GameObject selectPaoBeiPanel; //他的出现效果是从上往下滑动的动画效果 关闭是从下往上滑动的动画效果 所称height变成0和还原那种的时间0.5s
|
||||
public GameObject paobeiItemPrefab;//自己的gameobject上面有image组件和button组件 选择后直接关闭 然后他的getchild0上有个textmeshprougui 5000以下的炮倍是蓝色的 5000-10000是紫色 10000以上是红色的 黄色是选中状态的
|
||||
public Transform paobeiItemParent;
|
||||
public Sprite redBG;
|
||||
public Sprite purpleBG;
|
||||
public Sprite blueBG;
|
||||
public Sprite yellowBG;
|
||||
|
||||
|
||||
[Tooltip("自动攻击开关(由 GameMainPanel 的 toggle_SkillAuto 移植):开着=自动扫射+自动开火;关闭时本地座位炮台切回 Idle 并触发 OnAutoAttackOff")]
|
||||
public Toggle toggle_AutoAttack;
|
||||
|
||||
/// <summary>自动攻击从开→关时触发一次(GameMainPanel 订阅后广播 Idle 状态给其他客户端,仅本地玩家座位会触发)</summary>
|
||||
public event Action OnAutoAttackOff;
|
||||
|
||||
/// <summary>自动攻击是否开启(toggle 没拖引用时恒为 false,等同未开自动攻击)</summary>
|
||||
public bool IsAutoAttackOn => toggle_AutoAttack != null && toggle_AutoAttack.isOn;
|
||||
[Tooltip("长按判定时间(秒):按住 img_OpenPT 超过此时间触发 OnOpenPTLongPress")]
|
||||
public float openPTLongPressTime = 0.5f;
|
||||
public Image img_OpenPT;
|
||||
@@ -186,6 +204,10 @@ public class SitPosData : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
|
||||
if (btn_TurretMinus != null)
|
||||
btn_TurretMinus.onClick.AddListener(() => ChangeTurretMinusConsumeNum());
|
||||
|
||||
// ⭐ 自动攻击开关:关闭时本地座位炮台切回 Idle(原 GameMainPanel 的 toggle_SkillAuto 监听逻辑)
|
||||
if (toggle_AutoAttack != null)
|
||||
toggle_AutoAttack.onValueChanged.AddListener(OnAutoAttackToggleChanged);
|
||||
|
||||
// ⭐ 散射起点球父对象兜底:预制体没拖引用就自动创建(挂 beij 下,炮台两侧),
|
||||
// 保证 UpdateJGFXParentsActive 永远有对象可激活,不依赖 Inspector 配置。
|
||||
// XJMH(星际迷航)没有战神/激光概念,跳过不给它加节点。
|
||||
@@ -202,6 +224,20 @@ public class SitPosData : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
|
||||
InitXJMHTurret();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 自动攻击开关变化:关闭时本地座位炮台立即切回 Idle(自动开火停止)。
|
||||
/// ⭐ 只对本地玩家座位生效:同一个 toggle 被拖到多个座位时,非本地座位不响应,
|
||||
/// 避免远程座位的状态机被本地点击误切。
|
||||
/// </summary>
|
||||
private void OnAutoAttackToggleChanged(bool on)
|
||||
{
|
||||
if (on) return;
|
||||
if (this != localPlayerSit) return;
|
||||
|
||||
ChangeState(TurretState.Idle);
|
||||
OnAutoAttackOff?.Invoke();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 散射起点球父对象兜底:Inspector 没拖引用时自动创建两个 RectTransform
|
||||
/// (挂在 turretRotate 的父节点 beij 下,炮台左右两侧 ±50),并写回字段。
|
||||
|
||||
Reference in New Issue
Block a user