feat(gameplay): 更新单位属性和材质配置

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

No files matched your search

+98 -66
View File
@@ -1,5 +1,5 @@
# 召唤之战-核心玩法拆家版
> 版本:V1.1
> 版本:V1.2(2026-09-19 按当前实现更新战斗玩法)
> 定位:竖版手机休闲即时战略小游戏
> 单局时长:1~3分钟
> 核心目标:摧毁敌方主基地获胜
@@ -7,7 +7,7 @@
## 一、核心定位
本玩法为《召唤之战》的「拆家流」经典RTS版本,玩家通过消耗法力召唤单位,争夺战场上的水晶矿与随机出兵点,建立经济或兵力优势,最终突破防御摧毁敌方基地取胜。
- 操作极简:仅需「选择出兵目标 + 点击卡牌召唤单位」,无需框选、编队、驻守指令;
- 操作极简:仅需「点击建筑设定攻击标志 + 点击卡牌召唤单位」,无需框选、编队、驻守指令;
- 单位全自动作战:复用自动寻路与寻敌逻辑,玩家不干预单位微操;
- 策略核心:出兵目标选择、兵种搭配、资源分配节奏、资源点与出兵点取舍,避免纯数值对撞。
@@ -54,52 +54,55 @@
### 2.2 区域说明
| 区域 | 位置 | 规则 |
|------|------|------|
| 己方阵地 | 左下方 | 包含我方城堡、防御塔,为单位出生点 |
| 敌方阵地 | 右上方 | 包含敌方城堡、防御塔,为最终攻击目标 |
| 己方阵地 | 左下方 | 包含我方城堡,为单位出生点(城堡前方出兵点) |
| 敌方阵地 | 右上方 | 包含敌方城堡,为最终攻击目标 |
| 中央交战区 | 战场中央 | 双方部队交战、拦截和转向的主要区域 |
| 左上资源据点 | 敌方城堡一侧 | 可攻击争夺,双方均可进攻;作为敌方近点、我方远点 |
| 右下资源据点 | 我方城堡一侧 | 可攻击争夺,双方均可进攻;作为我方近点、敌方远点 |
| 右下资源据点 | 我方城堡一侧 | 可攻击争夺,双方均可进攻;作为我方近点、我方远点 |
| 主通道 | 各目标之间 | 基于NavMesh自由寻路,不设置强制固定路线 |
### 2.3 寻路规则
- 基于NavMesh实现自由寻路,仅十字形主通道和中央交战区为可通行烘焙区,外围障碍物完全阻挡;
- **建筑实体(城堡/水晶矿/混沌之门)使用独立 Buildings 层,排除在 NavMesh 烘焙之外**;建筑足迹通过运行时 NavMeshObstacle(圆柱 carve)挖空,单位绕行建筑不穿模、也不会被建筑模型的斜面"抬升";
- 单位自动计算前往绑定目标的最短路径,途中自动避让友军与地形;
- 单位贴地统一使用 `NavMeshAgent.baseOffset = 0`,跟随平坦 NavMesh 高度,不再根据模型 Renderer 包围盒自动校准,避免模型原点偏移导致角色运行时抬升;
- 无强制固定路线,单位可在主通道和中央交战区内自由移动,远点部队可能在中央区域遭遇拦截。
## 三、资源系统
### 3.1 法力水晶
- 法力是玩家主动召唤单位、释放技能使用的基础资源;
- 法力基础自动回复,开局默认速度,上限10点;
- 法力基础自动回复(3秒恢复1点),上限10点;
- 主动出兵始终受到法力上限和回复速度限制,避免玩家无限堆叠单位;
- 水晶矿产出的水晶是地图据点收益,不直接修改城堡或法力的基础回复速度,具体转化方式以测试为准;
- 水晶矿占领后,按固定间隔为当前归属方增加1点能量,不直接改变基础能量回复速度;
### 3.2 资源据点争夺规则
- 水晶矿与随机出兵点均为可攻击目标,不设置生命值,使用**红蓝争夺进度条**(0~100);
- 进度条中立状态为50:50。以当前观察方为例,100表示该方完全占领,0表示对方完全占领;
- 水晶矿与混沌之门均为可攻击目标,不设置生命值,使用**红蓝争夺进度条**(0~100);
- 进度条中立状态为50:50。以蓝方视角为例,100表示蓝方完全占领,0表示红方完全占领;
- 己方单位攻击据点时,进度条向己方方向偏移;敌方攻击时,进度条向敌方方向偏移;
- 进度条达到己方100%时,据点归属己方并开始产出对应资源;
- 进度条达到己方100%时,据点归属己方并开始产出对应资源(据点 teamId 翻转,光球/裂缝变色);
- 据点归属后,即使敌方开始攻击并推动进度条反向移动,原占有方仍持续获得产出;
- 只有当进度条被对方完全推到100%(即原占有方进度为0)时,才中止原占有方产出并将据点翻转给对方;
- 无任何单位攻击时,进度条保持当前数值不变;
- 据点翻转后,按相同规则由新的占有方获得对应产出。
- **中立据点属于第三阵营(teamId=2),单位基础寻敌不会自动攻击中立据点**,只有玩家攻击标志指向它时才会被进攻(避免单位路过就绕去打矿)。
### 3.3 水晶矿产出
- 水晶矿归属己方后,按固定间隔产出一个水晶;
- 水晶产出归属当前占领方,不直接提升城堡或法力的基础回复速度;
- 水晶矿被对方完全翻转后,后续水晶产出立即转移给新的占领方;
- 水晶的具体用途、是否自动计入资源以及储存上限,以战斗测试结果为准。
- 水晶矿占领后,按固定间隔为当前归属方增加1点能量;
- 能量收益归属当前占领方,不改变基础能量回复速度;
- 水晶矿被对方完全翻转后,后续能量收益立即转移给新的占领方;
- 能量收益的间隔和单局上限根据战斗测试调整。
### 3.4 随机出兵点产出
- 随机出兵点归属己方后,按固定间隔在出兵点附近自动生成1个单位;
### 3.4 混沌之门产出(原随机出兵点)
- 混沌之门归属己方后,按固定间隔在门口自动生成1个单位;
- 产出单位从**当前玩家出战卡组**中随机抽取,不从所有已解锁或全体角色中抽取;
- 随机概率按召唤费用分层:3费及以下概率较高,费用越高概率越低;具体概率以测试为准;
- 产出单位按当前玩家出战卡组进行概率抽取:低费用卡为主要产出,高费用卡仅以较低概率出现;具体概率按战斗测试调整;
- 产出单位不消耗玩家法力,价值定位低于玩家主动召唤,避免完全替代正常出兵;
- 产出单位默认执行随机出兵点归属方当前的出兵目标;如无特殊设置,则默认目标为敌方主基地;
- 随机出兵点被对方完全翻转后,自动出兵权转移给对方。
- 产出单位默认执行混沌之门归属方当前的攻击标志目标;如无特殊设置,则默认目标为敌方主基地;
- 混沌之门被对方完全翻转后,自动出兵权转移给对方。
## 四、单位系统
### 4.1 通用属性
所有单位统一包含:召唤费用、生命值、攻击力、攻击距离、移动速度、攻击优先级。
所有单位统一包含:召唤费用、生命值、攻击力、攻击距离(attackRange)、寻敌视野(detectionRange,默认25米)、移动速度。
### 4.2 单位分类与定位
| 单位 | 费用档位 | 定位 | 核心特点 |
@@ -113,82 +116,111 @@
步兵克制法师、射手克制步兵、重甲克制建筑、法师克制扎堆步兵,形成循环博弈。
## 五、核心战斗逻辑
### 5.1 单位AI优先级(固定不变)
单位自动寻敌,优先级从高到低:
1. 视野内的敌方单位(最高优先级,发现即停止移动并攻击)
2. 自身绑定的指定目标(水晶矿 / 随机出兵点 / 敌方基地)
3. 路径上的敌方防御塔
4. 敌方主基地
### 5.1 单位AI寻敌逻辑(已实现)
```
if (detectionRange 视野内有敌方战斗单位) {
攻击最近的敌方单位(路上撞见就打)
} else {
直奔出生使命建筑(出生时快照的攻击标志)
到达攻击范围后再判断建筑阵营:
- 非我方 → 攻击它(推争夺进度/拆城堡)
- 我方(增援完成)→ 该单位使命转向敌方主城堡,继续走
}
```
- **视野内敌方单位永远最高优先级**:行军撞敌即停下互殴,击杀后继续执行原使命;
- 中立建筑(水晶矿/混沌之门)**不在自动寻敌范围内**,只能通过攻击标志指定进攻;
- 增援逻辑:玩家把标志点到己方已占领据点,新兵出生直奔该据点增援,到达后自动回归主城堡路线——玩家通过"改变出兵流"实现救援,无需驻守指令。
> 说明:敌方单位优先级永远最高,保证单位不会无视敌人强行拆矿/拆塔;敌人击杀后,自动继续前往原定目标。
### 5.2 出兵目标机制(方案B)
核心操作规则,**无驻守指令、无全局切换、无单位选中**,完全通过「召唤前预设目标」实现分兵。
1. 玩家在召唤单位前,先选择目标(进攻基地 / 进攻水晶矿 / 进攻随机出兵点);
2. 点击卡牌召唤后,**新出生的单位永久绑定该目标**,直到死亡;
3. 场上已存在的单位,目标不受后续按钮切换影响,始终执行出生时的任务;
4. 默认目标为「进攻敌方基地」,符合玩家基础直觉。
### 5.2 攻击标志系统(已实现,替代原目标按钮组方案)
核心操作:**点击建筑切换攻击标志**,无按钮、无模式开关。
- **双阵营独立标志**:蓝方/红方各自一个攻击标志,默认指向敌方主城堡;本地玩家点击建筑只切换自己阵营的标志(敌方标志由敌方AI/玩家控制,互不干扰);
- 标志视觉:建筑头顶倒锥箭头,颜色随标志所属阵营(蓝箭=蓝方目标,红箭=红方目标),双方标志指向同一建筑时并排错开显示;
- 点击规则:可点敌方/中立/己方占领建筑(点己方建筑=增援信号);点自己方主城堡无效;
- **出生即使命**:单位出生时快照当时己方标志指向的建筑作为终身使命(missionTarget),之后标志切换**不影响已存活单位**——这是分兵的实现方式:先点水晶矿出2个兵,再点混沌之门出兵,两路各走各的;
- 使命兜底:使命建筑被销毁时,单位自动转向敌方主城堡。
### 5.3 战斗行为示例
1. 玩家选择目标「水晶矿」,召唤2个步兵,步兵出生后自动向水晶矿移动;
2. 途中遭遇敌方单位,步兵立刻停止前进,优先攻击敌人;
3. 敌人被击杀后,步兵继续前往水晶矿,攻击水晶推进己方进度;
4. 玩家切换目标为「进攻随机出兵点」,再次召唤1个重甲,重甲出生后自动前往出兵点;
5. 此前的2个步兵仍继续攻击水晶矿,不受目标切换影响,实现分兵作战;
6. 随机出兵点归属己方期间,按固定间隔从玩家出战卡组中随机生成单位,生成单位默认前往敌方主基地。
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 目标选择按钮组
- 位置:召唤卡牌面板正上方,横向并排3个按钮;
- 交互:同一时间仅一个选中,选中态高亮显示,未选中置灰;
### 6.2 攻击标志(替代原目标按钮组)
- 交互:战斗区域内直接点击建筑(城堡/水晶矿/混沌之门),攻击标志(头顶箭头)跳转到该建筑;
- 无按钮组、无模式开关、无额外UI——标志本身就是全局状态显示;
- 逻辑:仅决定「下一次召唤单位的目标」,不影响场上已存活单位;
- 可选目标为「攻城堡」「打水晶」「打出兵点」;
- 默认选中「攻城堡」,开局无需额外操作即可出兵。
- 默认标志=敌方主城堡,开局无需任何操作即可出兵推塔。
### 6.3 单位召唤卡牌面板
- 位置:屏幕最底部,横向排列单位卡牌;
- 交互:点击卡牌消耗对应法力,单位在己方城堡附近生成;
- 信息:卡牌显示单位图标、召唤费用,费用不足时置灰不可点击。
- 交互:点击卡牌消耗对应法力(+卡牌冷却),单位在己方城堡前方出兵点生成;
- 单位出生继承当时攻击标志为目标(出生即使命);
- 信息:卡牌显示单位图标、召唤费用,费用不足/冷却中置灰不可点击。
### 6.4 标准操作流程
1. 观察战场局势,决定当前波次的目标(抢水晶矿、抢随机出兵点或推基地);
2. 点击对应目标按钮,确认选中状态;
3. 点击单位卡牌,消耗法力召唤对应兵种;
4. 重复上述步骤,多批次分配不同目标的部队,形成多线作战。
1. 观察战场局势,点击建筑设定攻击标志(默认敌堡,可不点直接出兵);
2. 点击单位卡牌,消耗法力召唤对应兵种,新兵直奔标志建筑;
3. 多批次点击不同建筑+出兵,形成多线分兵作战;
4. 发现己方据点被反扑:点该据点(增援信号)→ 持续出兵流增援 → 清场后单位自动回归推塔。
## 七、单局对局流程
1. **开局阶段(0~30秒)**
双方基础法力回复,默认出兵冲基地试探;可选择抢先派兵争夺水晶矿或随机出兵点,建立经济或兵力优势。
双方基础法力回复,默认出兵冲基地试探;可选择抢先派兵争夺水晶矿或混沌之门,建立经济或兵力优势。
2. **博弈阶段(30秒~1分30秒)**
围绕水晶矿与随机出兵点展开争夺,搭配兵种组合,用前排+后排阵容推进;通过分兵同时牵制资源据点与主线。
围绕水晶矿与混沌之门展开争夺,搭配兵种组合,用前排+后排阵容推进;通过分兵同时牵制资源据点与主线;据点被反扑时用标志增援。
3. **决胜阶段(1分30秒~3分钟)**
积累足够兵力后集中推进,突破防御塔,集火敌方城堡;城堡血量归零则对局结束。
积累足够兵力后集中推进,集火敌方城堡;城堡血量(1000)归零则对局结束。
若3分钟未分胜负,按城堡剩余血量百分比判定胜负,防止无限拉扯。
## 八、核心策略博弈点
1. **资源节奏**:攒法力出高费重甲,还是持续低费小兵压制;
2. **据点取舍**:优先抢水晶矿提升长期法力回复,还是抢随机出兵点获得额外兵力,或全力一波速攻基地;
3. **分兵策略**:同时争夺水晶矿和随机出兵点,还是集中兵力主攻一路;
4. **兵种搭配**:前排抗线+后排输出的组合,避免被范围伤害一波清场。
2. **据点取舍**:优先抢水晶矿提升长期法力回复,还是抢混沌之门获得额外兵力,或全力一波速攻基地;
3. **分兵策略**:同时争夺水晶矿和混沌之门,还是集中兵力主攻一路;
4. **增援时机**:据点被反扑时是否及时切标志增援——增援的代价是兵力晚到前线(兜圈子),不增援的代价是据点进度被推回(粘性占领提供反应窗口);
5. **兵种搭配**:前排抗线+后排输出的组合,避免被范围伤害一波清场。
## 九、开发落地建议
1. **寻路复用**:直接复用现有NavMesh寻路逻辑,仅需烘焙十字形可行走区域;
2. **AI简化**:保留原有单位战斗状态机,仅新增「出生目标绑定」字段,无需新增驻守状态;
3. **据点实现**:水晶矿与随机出兵点作为特殊可攻击目标,共用红蓝争夺进度数值;据点达到己方100%后开始产出,只有被对方完全推到0才翻转并转移产出;水晶矿按固定间隔产出水晶,随机出兵点按费用权重从玩家出战卡组中自动生成单位;
4. **UI优先**:先实现底部目标按钮+召唤面板的核心交互,再扩展技能、特效等内容。
## 九、开发落地现状(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 等封存素材)。