Files
daluandou/召唤之战 - 核心玩法拆家版.md
T
huadexuan 53d95802e5 ```
feat(gameplay): 更新单位属性和材质配置

- 调整多个单位的基础生命值和攻击力数值平衡
- 修改CoreBattleGround材质的纹理缩放比例
- 更新地砖材质颜色为白色
- 优化纹理资源设置,调整最大纹理尺寸并添加PlayableAds平台支持
- 修复弓箭手技能目标查找逻辑,改用统一的敌人检测方法
- 为水晶矿添加中立阵营设置和光球视觉效果同步
- 调整预制体中的全局缩放参数
- 为狼人和石巨人添加NavMeshAgent组件支持
- 优化水晶矿血条显示位置计算方式
```
2026-09-20 21:52:31 +08:00

227 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 召唤之战-核心玩法拆家版
> 版本:V1.2(2026-09-19 按当前实现更新战斗玩法)
> 定位:竖版手机休闲即时战略小游戏
> 单局时长:1~3分钟
> 核心目标:摧毁敌方主基地获胜
> 核心特点:轻量操作、自由寻路、资源与出兵据点争夺、兵种克制,无复杂框选与编队
## 一、核心定位
本玩法为《召唤之战》的「拆家流」经典RTS版本,玩家通过消耗法力召唤单位,争夺战场上的水晶矿与随机出兵点,建立经济或兵力优势,最终突破防御摧毁敌方基地取胜。
- 操作极简:仅需「点击建筑设定攻击标志 + 点击卡牌召唤单位」,无需框选、编队、驻守指令;
- 单位全自动作战:复用自动寻路与寻敌逻辑,玩家不干预单位微操;
- 策略核心:出兵目标选择、兵种搭配、资源分配节奏、资源点与出兵点取舍,避免纯数值对撞。
## 二、战场地图设计
### 2.1 整体布局
采用**竖版9:16比例**,核心可通行区域为十字形,外围为不可通行障碍物(岩石/树林)。四个核心目标采用对角线布局,充分利用屏幕四角空间,同时保留中央交战区和多路径进攻空间。
```text
┌─────────────────────────────────────┐
│ │
│ 【左上资源据点】 【敌方城堡】 │
│ ● ■ │
│ \ / │
│ \ / │
│ \ / │
│ 【中央交战区】 │
│ / \ │
│ / \ │
│ / \ │
│ 【我方城堡】 【右下资源据点】 │
│ ■ ● │
│ │
└─────────────────────────────────────┘
```
- 我方城堡位于左下,敌方城堡位于右上;
- 右下资源据点是我方近点、敌方远点;
- 左上资源据点是敌方近点、我方远点;
- 两个资源据点均可被双方争夺,不属于任何一方的专属区域;
- 中央区域作为双方部队交战和拦截远点部队的主要区域;
- 资源据点不应贴近屏幕边缘,应与城堡和中央交战区保持可寻路距离。
建议先使用以下相对坐标进行场景布局,再根据NavMesh实际路径距离微调:
| 目标 | 建议坐标(X, Z) | 距离关系 |
|------|------------------|----------|
| 我方城堡 | (-7, 8) | 我方出生点 |
| 右下资源据点 | (7, 24) | 我方近点、敌方远点 |
| 左上资源据点 | (-7, 46) | 敌方近点、我方远点 |
| 敌方城堡 | (7, 62) | 敌方出生点 |
双方均可选择进攻任意资源据点。近点更容易快速占领和支援,远点需要承担更长的行军距离和被中央区域拦截的风险。
### 2.2 区域说明
| 区域 | 位置 | 规则 |
|------|------|------|
| 己方阵地 | 左下方 | 包含我方城堡,为单位出生点(城堡前方出兵点) |
| 敌方阵地 | 右上方 | 包含敌方城堡,为最终攻击目标 |
| 中央交战区 | 战场中央 | 双方部队交战、拦截和转向的主要区域 |
| 左上资源据点 | 敌方城堡一侧 | 可攻击争夺,双方均可进攻;作为敌方近点、我方远点 |
| 右下资源据点 | 我方城堡一侧 | 可攻击争夺,双方均可进攻;作为我方近点、我方远点 |
| 主通道 | 各目标之间 | 基于NavMesh自由寻路,不设置强制固定路线 |
### 2.3 寻路规则
- 基于NavMesh实现自由寻路,仅十字形主通道和中央交战区为可通行烘焙区,外围障碍物完全阻挡;
- **建筑实体(城堡/水晶矿/混沌之门)使用独立 Buildings 层,排除在 NavMesh 烘焙之外**;建筑足迹通过运行时 NavMeshObstacle(圆柱 carve)挖空,单位绕行建筑不穿模、也不会被建筑模型的斜面"抬升";
- 单位自动计算前往绑定目标的最短路径,途中自动避让友军与地形;
- 单位贴地统一使用 `NavMeshAgent.baseOffset = 0`,跟随平坦 NavMesh 高度,不再根据模型 Renderer 包围盒自动校准,避免模型原点偏移导致角色运行时抬升;
- 无强制固定路线,单位可在主通道和中央交战区内自由移动,远点部队可能在中央区域遭遇拦截。
## 三、资源系统
### 3.1 法力水晶
- 法力是玩家主动召唤单位、释放技能使用的基础资源;
- 法力基础自动回复(3秒恢复1点),上限10点;
- 主动出兵始终受到法力上限和回复速度限制,避免玩家无限堆叠单位;
- 水晶矿占领后,按固定间隔为当前归属方增加1点能量,不直接改变基础能量回复速度;
### 3.2 资源据点争夺规则
- 水晶矿与混沌之门均为可攻击目标,不设置生命值,使用**红蓝争夺进度条**(0~100);
- 进度条中立状态为50:50。以蓝方视角为例,100表示蓝方完全占领,0表示红方完全占领;
- 己方单位攻击据点时,进度条向己方方向偏移;敌方攻击时,进度条向敌方方向偏移;
- 进度条达到己方100%时,据点归属己方并开始产出对应资源(据点 teamId 翻转,光球/裂缝变色);
- 据点归属后,即使敌方开始攻击并推动进度条反向移动,原占有方仍持续获得产出;
- 只有当进度条被对方完全推到100%(即原占有方进度为0)时,才中止原占有方产出并将据点翻转给对方;
- 无任何单位攻击时,进度条保持当前数值不变;
- 据点翻转后,按相同规则由新的占有方获得对应产出。
- **中立据点属于第三阵营(teamId=2),单位基础寻敌不会自动攻击中立据点**,只有玩家攻击标志指向它时才会被进攻(避免单位路过就绕去打矿)。
### 3.3 水晶矿产出
- 水晶矿占领后,按固定间隔为当前归属方增加1点能量;
- 能量收益归属当前占领方,不改变基础能量回复速度;
- 水晶矿被对方完全翻转后,后续能量收益立即转移给新的占领方;
- 能量收益的间隔和单局上限根据战斗测试调整。
### 3.4 混沌之门产出(原随机出兵点)
- 混沌之门归属己方后,按固定间隔在门口自动生成1个单位;
- 产出单位从**当前玩家出战卡组**中随机抽取,不从所有已解锁或全体角色中抽取;
- 产出单位按当前玩家出战卡组进行概率抽取:低费用卡为主要产出,高费用卡仅以较低概率出现;具体概率按战斗测试调整;
- 产出单位不消耗玩家法力,价值定位低于玩家主动召唤,避免完全替代正常出兵;
- 产出单位默认执行混沌之门归属方当前的攻击标志目标;如无特殊设置,则默认目标为敌方主基地;
- 混沌之门被对方完全翻转后,自动出兵权转移给对方。
## 四、单位系统
### 4.1 通用属性
所有单位统一包含:召唤费用、生命值、攻击力、攻击距离(attackRange)、寻敌视野(detectionRange,默认25米)、移动速度。
### 4.2 单位分类与定位
| 单位 | 费用档位 | 定位 | 核心特点 |
|------|----------|------|----------|
| 近战步兵 | 低费 | 前排肉盾/量产 | 血量适中,近战输出,优先攻击敌方单位 |
| 远程射手 | 中费 | 后排输出 | 身脆伤害高,需前排保护,克制无甲单位 |
| 重甲单位 | 高费 | 推线核心 | 高血量,伤害偏低,优先攻击建筑 |
| 范围法师 | 高额 | 群体输出 | 范围伤害,克制扎堆小兵,自身极脆 |
### 4.3 基础克制关系
步兵克制法师、射手克制步兵、重甲克制建筑、法师克制扎堆步兵,形成循环博弈。
## 五、核心战斗逻辑
### 5.1 单位AI寻敌逻辑(已实现)
```
if (detectionRange 视野内有敌方战斗单位) {
攻击最近的敌方单位(路上撞见就打)
} else {
直奔出生使命建筑(出生时快照的攻击标志)
到达攻击范围后再判断建筑阵营:
- 非我方 → 攻击它(推争夺进度/拆城堡)
- 我方(增援完成)→ 该单位使命转向敌方主城堡,继续走
}
```
- **视野内敌方单位永远最高优先级**:行军撞敌即停下互殴,击杀后继续执行原使命;
- 中立建筑(水晶矿/混沌之门)**不在自动寻敌范围内**,只能通过攻击标志指定进攻;
- 增援逻辑:玩家把标志点到己方已占领据点,新兵出生直奔该据点增援,到达后自动回归主城堡路线——玩家通过"改变出兵流"实现救援,无需驻守指令。
### 5.2 攻击标志系统(已实现,替代原目标按钮组方案)
核心操作:**点击建筑切换攻击标志**,无按钮、无模式开关。
- **双阵营独立标志**:蓝方/红方各自一个攻击标志,默认指向敌方主城堡;本地玩家点击建筑只切换自己阵营的标志(敌方标志由敌方AI/玩家控制,互不干扰);
- 标志视觉:建筑头顶倒锥箭头,颜色随标志所属阵营(蓝箭=蓝方目标,红箭=红方目标),双方标志指向同一建筑时并排错开显示;
- 点击规则:可点敌方/中立/己方占领建筑(点己方建筑=增援信号);点自己方主城堡无效;
- **出生即使命**:单位出生时快照当时己方标志指向的建筑作为终身使命(missionTarget),之后标志切换**不影响已存活单位**——这是分兵的实现方式:先点水晶矿出2个兵,再点混沌之门出兵,两路各走各的;
- 使命兜底:使命建筑被销毁时,单位自动转向敌方主城堡。
### 5.3 战斗行为示例
1. 玩家点击水晶矿(蓝箭头从敌堡跳到水晶矿),召唤2个步兵;
2. 步兵出生即绑定使命=水晶矿,直奔水晶矿;
3. 途中遭遇敌方单位,步兵立刻停下互殴(视野优先);
4. 敌人被击杀后,步兵继续前往水晶矿,攻击推进争夺进度;
5. 玩家再点击混沌之门(标志切换),召唤1个重甲,重甲使命=混沌之门,自动前往;
6. 此前的2个步兵仍继续攻击水晶矿,不受标志切换影响,实现分兵作战;
7. 敌方反扑我方占领的水晶矿:玩家点击该水晶矿(增援信号),新出的兵直奔水晶矿救援,清场后单位自动回归敌方主城堡路线;
8. 混沌之门归属己方期间,按固定间隔从玩家出战卡组随机生成单位,生成单位默认前往敌方主基地。
### 5.4 建筑受击与攻击距离
- 四个建筑(蓝/红城堡、水晶矿、混沌之门)统一 **Building Tag** + CapsuleCollider(圆柱,半径按模型网格实际顶点计算);
- 单位攻击建筑的判定距离用 **Collider.ClosestPoint 计算到建筑表面的水平距离**(城堡中心在模型内部,直接用中心距离会导致够不着/隔空打);
- 攻击距离 = 单位 attackRange + 建筑专用小缓冲(0.2,贴近墙体攻击);单位互打保持 1.5 缓冲;
- 伤害管线:UnitBase(普通单位)→ CrystalMineCapture(据点争夺)→ BuildingHealth(建筑)→ WorldHealthBar(通用血量),近战/技能/飞行物全类型支持。
## 六、UI布局与操作
### 6.1 整体布局
采用「上战场、下操作」的竖版经典结构,战斗视野完整,拇指可覆盖全部操作区。
```text
┌──────────────────────────────┐
│ │
│ 战场区域(2.5D) │
│ (点击建筑切换攻击标志) │
│ │
├──────────────────────────────┤
│ 步兵 射手 重甲 法师 │ ← 单位召唤卡牌面板
└──────────────────────────────┘
```
### 6.2 攻击标志(替代原目标按钮组)
- 交互:战斗区域内直接点击建筑(城堡/水晶矿/混沌之门),攻击标志(头顶箭头)跳转到该建筑;
- 无按钮组、无模式开关、无额外UI——标志本身就是全局状态显示;
- 逻辑:仅决定「下一次召唤单位的目标」,不影响场上已存活单位;
- 默认标志=敌方主城堡,开局无需任何操作即可出兵推塔。
### 6.3 单位召唤卡牌面板
- 位置:屏幕最底部,横向排列单位卡牌;
- 交互:点击卡牌消耗对应法力(+卡牌冷却),单位在己方城堡前方出兵点生成;
- 单位出生继承当时攻击标志为目标(出生即使命);
- 信息:卡牌显示单位图标、召唤费用,费用不足/冷却中置灰不可点击。
### 6.4 标准操作流程
1. 观察战场局势,点击建筑设定攻击标志(默认敌堡,可不点直接出兵);
2. 点击单位卡牌,消耗法力召唤对应兵种,新兵直奔标志建筑;
3. 多批次点击不同建筑+出兵,形成多线分兵作战;
4. 发现己方据点被反扑:点该据点(增援信号)→ 持续出兵流增援 → 清场后单位自动回归推塔。
## 七、单局对局流程
1. **开局阶段(0~30秒)**
双方基础法力回复,默认出兵冲基地试探;可选择抢先派兵争夺水晶矿或混沌之门,建立经济或兵力优势。
2. **博弈阶段(30秒~1分30秒)**
围绕水晶矿与混沌之门展开争夺,搭配兵种组合,用前排+后排阵容推进;通过分兵同时牵制资源据点与主线;据点被反扑时用标志增援。
3. **决胜阶段(1分30秒~3分钟)**
积累足够兵力后集中推进,集火敌方城堡;城堡血量(1000)归零则对局结束。
若3分钟未分胜负,按城堡剩余血量百分比判定胜负,防止无限拉扯。
## 八、核心策略博弈点
1. **资源节奏**:攒法力出高费重甲,还是持续低费小兵压制;
2. **据点取舍**:优先抢水晶矿提升长期法力回复,还是抢混沌之门获得额外兵力,或全力一波速攻基地;
3. **分兵策略**:同时争夺水晶矿和混沌之门,还是集中兵力主攻一路;
4. **增援时机**:据点被反扑时是否及时切标志增援——增援的代价是兵力晚到前线(兜圈子),不增援的代价是据点进度被推回(粘性占领提供反应窗口);
5. **兵种搭配**:前排抗线+后排输出的组合,避免被范围伤害一波清场。
## 九、开发落地现状(2026-09-19)
### 9.1 已实现
- **寻路**:NavMesh 全场景平坦烘焙(Y=0.16),Buildings 层排除烘焙 + NavMeshObstacle carve 挖空建筑足迹;
- **贴地**:NavMeshAgent.baseOffset 固定为 0,单位跟随平坦 NavMesh 高度,不再根据模型 Renderer 包围盒自动校准;
- **根运动**:applyRootMotion 全局开启,OnAnimatorMove 统一协调——走路保留动画侧向摇摆/转身(前向分量由 agent 控制防双倍速),攻击/技能根运动全量生效(前冲/后撤);
- **移动架构**:所有单位统一 NavMeshAgent 寻路,CharacterController 移动分支已删除(死代码清理约150行);
- **攻击标志**:AttackTargetController 双阵营标志 + 头顶箭头 + 点击建筑切换 + 出生使命快照;
- **出兵**:CastleSpawnManager 从城堡前方出兵点生成,ManaSystem 能量消耗 + 卡牌冷却;
- **建筑**:蓝/红城堡(UnitTeam + WorldHealthBar 1000HP + CapsuleCollider)、水晶矿/混沌之门(CrystalMineCapture 争夺进度 + 圆柱碰撞体);
- **建筑攻击**:ClosestPoint 表面距离判定,建筑缓冲0.2/单位缓冲1.5;
- **伤害管线**:UnitBase → CrystalMineCapture → BuildingHealth → WorldHealthBar 全类型命中。
### 9.2 待开发
- 水晶矿能量收益逻辑(固定间隔增加能量);
- 混沌之门自动产兵(按费用分层概率抽取卡组单位);
- 敌方AI(红方出兵策略与标志控制);
- 胜负判定(城堡血量归零/超时比较);
- 场地比例调整(单位偏小问题:城堡间距50米→建议32米左右、相机 size 28.8→16~18,需重烘NavMesh与重算建筑碰撞);
- 旧玩法脚本清理(Barracks/GoldSystem/WaveSpawner/BattleSetupManager/SummonerDuelManager 等封存素材)。