1
This commit is contained in:
@@ -2,17 +2,25 @@ using System;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// 起飞炮台(TurretData 子类):
|
||||
/// 平时是一门正常炮台(照常手动瞄准开火/自动开火/锁定瞄准);
|
||||
/// 额外支持起飞模式:轻点空白处 → 炮台飞到该点(点到哪飞到哪)→ 到达后持续向上发射子弹,
|
||||
/// upFireDuration 到时自动降落回原位恢复正常开火;起飞时播放特殊 spine 动画
|
||||
/// (takeoffAnim 播一次,flyLoopAnim 循环衔接)。
|
||||
/// 起飞炮台(TurretData 子类):炮台模式 / 起飞模式 两态分离。
|
||||
/// 【炮台模式(IsFlying=false,默认形态)】就是一门正常炮台:手动瞄准开火/自动开火/锁定瞄准照常,
|
||||
/// 与普通 TurretData 行为完全一致(轻点屏幕只走正常开火流程,不会起飞)。
|
||||
/// 【起飞模式(IsFlying=true)】点"起飞按钮"进入(按钮逻辑待完善;默认 allowTapTakeoff=false
|
||||
/// 时轻点屏幕不触发起飞):炮台飞到目标点 → 到达后持续向上发射子弹,upFireDuration
|
||||
/// 到时自动降落回原炮台位;起飞时播放特殊 spine 动画(takeoffAnim 播一次,flyLoopAnim 循环衔接);
|
||||
/// 期间炮口固定朝上、状态切换/开火/按住输入均被拦截(见 ChangeState/各开火入口)。
|
||||
/// 起飞入口:TakeoffToScreenPos(当前轻点路径,受 allowTapTakeoff 控制);
|
||||
/// 将来"起飞按钮"接入后走同一入口即可(或在面板上打开 allowTapTakeoff 恢复轻点起飞)。
|
||||
/// 交互判定在 GameMainPanel_FishBase.HandleInput(轻点=按下短+几乎没移动;按住扫射不触发起飞)。
|
||||
/// 挂在 XJMH 座位炮台(xjmhTurretList 中的子对象)上即可,无需改预制体结构。
|
||||
/// 挂载:XJMH 座位炮台(xjmhTurretList 中的子对象),飞机预制体挂在炮台节点下面(PW_Plane_x,默认隐藏)。
|
||||
/// 注意:不要在本类定义 Awake/OnEnable,会隐藏基类的同名私有初始化逻辑。
|
||||
/// </summary>
|
||||
public class FlyTurretData : TurretData
|
||||
{
|
||||
[Header("起飞入口")]
|
||||
[Tooltip("允许轻点屏幕起飞(默认关=false:没点起飞按钮就不起飞)。\n将来\"起飞按钮\"逻辑接入后走专门入口,不受本开关限制")]
|
||||
public bool allowTapTakeoff = false;
|
||||
|
||||
[Header("起飞(点哪飞哪)")]
|
||||
[Tooltip("起飞特殊 spine 动画名(起飞时播一次;为空则直接播飞行循环动画)")]
|
||||
public string takeoffAnim;
|
||||
@@ -85,11 +93,17 @@ public class FlyTurretData : TurretData
|
||||
|
||||
/// <summary>
|
||||
/// 起飞/移动到目标屏幕点(点到哪飞到哪)。
|
||||
/// 首次调用=起飞;飞行中再次调用=改目标点;降落中调用=取消降落改飞新目标。
|
||||
/// 返回 false 表示未起飞(节点不是 UGUI 或画布引用缺失)。
|
||||
/// 首次调用=进入起飞模式;飞行中再次调用=改目标点;降落中调用=取消降落改飞新目标。
|
||||
/// ⭐ 轻点起飞总开关:未进入起飞模式时受 allowTapTakeoff 控制——默认 false,
|
||||
/// 即"没点起飞按钮就不起飞"(轻点松开只会走正常 Idle/开火流程);飞行中改目标不受此限制。
|
||||
/// 返回 false 表示未起飞(开关未开 / 节点不是 UGUI / 画布引用缺失)。
|
||||
/// </summary>
|
||||
public bool TakeoffToScreenPos(Vector2 screenPos)
|
||||
{
|
||||
// ⭐ 默认不响应轻点起飞("起飞先不做",起飞按钮逻辑待完善):进入起飞模式前先过开关。
|
||||
// 已在飞行=起飞模式内部行为(改目标点),不受开关限制
|
||||
if (!IsFlying && !allowTapTakeoff) return false;
|
||||
|
||||
EnsureRefs();
|
||||
if (_rect == null || _parentRect == null || _canvasRect == null) return false;
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user