Files
daluandou/召唤之战-核心玩法.md
T
huadexuan 1cdb7c3910 ```
feat(buildings): 添加金矿建筑功能并优化建筑健康系统

- 为兵营和金矿添加伤害数字显示功能,包括持续时间、上升高度等参数
- 将金矿脚本重构为GoldMine组件,实现定时产出金币机制
- 为所有单位添加NavMeshAgent组件以支持导航寻路
- 为弓箭手、法师等单位添加分离半径和目标扩散参数
- 为建筑添加碰撞体和标签设置
- 修复当前能量字段命名规范(currentEnergy -> _currentEnergy)
- 调整金矿健康值从100提升至500
- 统一伤害数字显示相关属性配置
```
2026-09-15 21:13:44 +08:00

289 lines
12 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.
# 召唤之战-核心玩法
> 当前版本:核心玩法草案
>
> 目标:围绕“建筑生产 + 自动作战 + 主角辅助”的对攻玩法,先确定单局战斗的基本规则,再逐步扩展角色、装备、养成和对战模式。
## 一、核心定位
《召唤之战》是一款以**召唤和建筑生产**为核心的实时策略战斗游戏。
玩家通过金币建造金矿和兵营,兵营持续生产角色单位。己方单位自动寻找目标并向敌方推进,玩家主要通过经济投入、建筑选择、兵种组合和主角技能影响战局。
核心决策是:
- 先建造金矿,发展经济;
- 还是先建造兵营,尽快形成战斗压力;
- 选择哪种角色建筑;
- 建筑放在哪里,如何避免堵塞和被快速摧毁;
- 什么时候操作主角移动或释放技能。
## 二、单局战斗结构
### 2.1 地图
- 地图长度比当前第一版长地图明显缩短,避免玩家长时间赶路。
- 每个小关使用一个独立场景,同时复用通用建筑、角色、UI 和特效资源。
- 地图保留主题变化,例如城堡、荒野、沼泽、矿坑、雪山等。
- 地图中间设置少量障碍物,用来分割进攻路径。
- 进攻路线根据关卡设计分为 1 路、2 路或 3 路。
- 单位从己方区域向敌方区域推进,并在路线上寻找最近的有效目标。
### 2.2 寻路(已实现 ✅)
**当前状态:**
- 已接入 Unity NavMesh 自动寻路系统
- 单位可以自动绕过障碍物和地形
- 支持左右两路地图布局
- 寻路性能已优化(路径更新频率限制为 0.5 秒/次)
**寻路规则:**
- 单位自动寻找距离最近的敌方单位或建筑
- 遇到障碍物时自动绕行
- 攻击时停止移动,避免边打边漂移
- 单位之间可以轻微重叠(无物理碰撞),避免密集战斗时卡位
- NavMeshAgent 提供基础避让,但不保证完全不重叠
**技术细节:**
- 使用 NavMeshAgent 替代 CharacterController 移动
- 攻击时禁用 NavMeshAgent,防止漂移
- 移动时重新启用 NavMeshAgent
- 攻击距离判定增加 1.5 米缓冲,避免单位互相顶到才攻击
### 2.3 伤害数字反馈(已实现 ✅)
**当前状态:**
- 单位受击时头顶弹出伤害数字
- 8 方向黑色描边 + 彩色主字,清晰可见
- 根据受击者阵营显示不同颜色和浮动方向
**显示规则:**
| 情况 | 数字颜色 | 浮动方向 | 说明 |
|------|---------|---------|------|
| 友方单位受伤 | 红色 | 向下 | 玩家的士兵被敌人攻击 |
| 敌方单位受伤 | 白色 | 向上 | 敌人被玩家的士兵攻击 |
| 任何单位治疗 | 绿色 | 向上 | 单位被治疗恢复生命值 |
**技术细节:**
- 每个伤害数字由 9 个 TextMesh 组成(1 个彩色主字 + 8 个黑色描边)
- 描边宽度统一为 0.025,所有角色一致
- 伤害数字持续 0.8 秒,带缩放和淡出动画
- 同时最多显示 60 个伤害数字,防止极端情况刷屏
## 三、主角定位
主角保留,并作为己方单位加入战场,而不是单纯的 UI 指挥官。
### 3.1 主角职责
- 主角可以普通攻击;
- 主角全程由 AI 自动控制,不支持点击地面手动移动(避免与拖动屏幕、建筑放置的输入冲突);
- 没有敌人时,主角在己方主建筑周围小范围来回巡逻;
- 索敌范围较小:只有敌人进入主角附近一定范围内才会被发现并攻击,不主动远离基地寻找敌人;
- 巡逻和追击都被限制在基地附近区域,主角不能完全离开基地;
- 主角可以手动释放技能(通过 UI 技能按钮,不占用地面点击操作);
- 主角技能冷却较长,主要用于辅助、补刀和改变局部战况;
- 主角不是主要战斗力,不能替代建筑生产的军队;
- 主角的价值是提升玩家参与感,并在关键时刻提供战术干预。
### 3.2 主角装备
主角可以装备不同武器或装备。装备可改变主角的普通攻击方式和技能效果。
初步装备方向:
| 装备 | 普攻方向 | 技能方向 | 定位 |
|---|---|---|---|
| 法杖/魔杖 | 远程魔法攻击 | 范围伤害、控制或增益 | 远程辅助 |
| 弓箭 | 远程物理攻击 | 多重射击、点杀或穿透 | 远程输出辅助 |
| 大剑 | 近战攻击 | 范围斩击、击退或短时强化 | 近战辅助 |
装备技能冷却较长,主要是锦上添花,不应让主角单独决定整场胜负。
装备获取、稀有度和具体数值暂不实现,后续可与抽卡系统关联。
## 四、建筑系统
### 4.1 建筑类型
首版至少包含以下建筑:
| 建筑 | 主要作用 |
|---|---|
| 主建筑 | 己方核心建筑,负责承受攻击并作为重要胜负目标 |
| 金矿 | 持续产生金币,支持后续建造 |
| 兵营 | 按固定间隔持续生产指定角色单位 |
除了主建筑外,金矿和兵营都需要消耗金币建造。
后续可以增加防御塔、特殊功能建筑或不同生产类型的建筑,但不作为首版核心要求。
### 4.2 建筑摆放
采用“隐藏粗网格 + 视觉上不显示网格线 + 建筑自动吸附”的方案。玩家看到的是自然地面,不需要操作可见的密集网格;只有建筑放置位置受到隐藏网格约束。
首版不制作复杂的六边形网格编辑器,也不要求玩家精确调整每个建筑的连续坐标。建筑放置系统负责将建筑吸附到最近的合法位置,同时保留一定的布局自由度。
#### 基本规则
- 建筑只能放置在允许的己方区域内;
- 建筑移动预览时自动吸附到最近的粗网格位置;
- 建筑之间不能重叠;
- 建筑之间需要保持最小安全间距;
- 建筑不能超出地图边界;
- 建筑不能堵住主建筑、主角或己方单位的主要出口;
- 建筑不能完全封死己方主要进攻路线;
- 非法位置不能确认建造。
#### 建筑占格建议
- 金矿:暂定占用 2×2 格;
- 兵营:暂定占用 2×2 格;
- 主建筑:暂定占用 3×3 或 4×4 格;
- 建筑之间至少保留一格缓冲距离,避免建筑虽然没有重叠,但互相贴近导致单位无法通过。
具体网格尺寸和建筑占格数量以实际地图比例和单位体型测试结果为准。
#### 放置预览
玩家选择金矿或兵营后,进入建筑放置状态:
1. 显示半透明的建筑预览;
2. 预览自动吸附到最近的粗网格位置;
3. 建筑底部显示放置边框;
4. 合法位置显示绿色边框,并允许确认建造;
5. 非法位置显示红色边框,并禁止确认建造;
6. 点击确认后扣除金币并生成正式建筑;
7. 点击取消或右键退出放置状态。
绿色/红色边框需要让玩家明确知道当前位置是否能够放置,而不显示完整网格线。
#### 合法性检查
建筑位置校验至少需要考虑:
1. 建筑自身占用范围;
2. 与其他建筑的安全间距;
3. 建筑与地图边界的距离;
4. 主角和生产单位的出生点;
5. 己方主要进攻通道是否仍然可通行;
6. 建筑被摧毁后是否仍会留下阻挡;
7. 建筑是否处于可建造地面。
实现上可以组合使用隐藏网格占用判断、碰撞范围检测和进攻路线通行检查,而不只依赖单个 Collider。
#### 视觉与资源复用
- 兵营和金矿使用统一的正方形底座规格;
- 兵营通过顶部站立的对应角色模型表现生产兵种;
- 金矿通过明显的金色矿脉、矿井入口和采矿收集装置表现功能;
- 主建筑使用更大的独立底座和召唤核心突出重要性;
- 运行时角色展示、生产进度条和放置边框不烘焙进建筑贴图。
如果隐藏粗网格仍无法稳定解决卡位问题,再考虑使用预设建筑槽位。主角和战斗单位仍使用真实世界坐标移动,只有建筑放置使用隐藏网格。
## 五、兵营生产
### 5.1 基本规则
- 角色对应的兵营建造完成后,开始生产该角色;
- 兵营每隔若干秒自动产出一个单位;
- 生产出的单位从兵营附近的出生位置出现;
- 单位出现后自动寻找目标并参与战斗;
- 兵营被摧毁后停止生产;
- 生产间隔、建筑血量和角色费用由角色与建筑配置决定。
### 5.2 建筑表现
首版尽量复用同一个兵营模型:
- 所有角色兵营使用统一的兵营建筑模型;
- 兵营顶部或正面显示对应角色的小头像;
- 头像外显示绿色生产进度条;
- 进度条从空逐渐增长,完成后生产一个单位并重新开始;
- 金矿可以暂时复用统一的建筑表现;
- 建筑外观差异主要通过头像、颜色和 UI 标识体现。
这样可以先验证玩法,不把开发成本集中在大量建筑模型上。后续玩家数量和内容规模确定后,再增加建筑皮肤或主题外观。
## 六、经济系统
- 金币是建造金矿和兵营的主要资源;
- 金矿持续产生金币;
- 兵营和其他功能建筑消耗金币;
- 玩家需要在经济发展和即时战力之间做选择;
- 高稀有度或高强度角色可以设置更高的建筑/生产成本,但不能只依靠数值碾压普通角色;
- 金币初始值、金矿产出速度、建筑费用和单位生产间隔需要通过单局测试平衡。
## 七、自动战斗规则
- 己方和敌方单位均由 AI 控制;
- 单位优先寻找距离最近的有效目标;
- 有效目标包括敌方单位和敌方建筑;
- 单位进入攻击范围后停止移动并进行普通攻击;
- 角色技能按各自规则自动释放;
- 主角与普通单位一样属于战场单位,但拥有玩家手动移动和手动技能操作;
- 主角没有主动指令时,按照自动巡逻和自动攻击规则行动。
## 八、胜负规则
### 8.1 当前确定规则
- 摧毁对方主建筑作为主要胜利目标;
- 己方主建筑被摧毁时,立即失败;
- 对方主建筑被摧毁时,立即胜利;
- 摧毁金矿和兵营可以削弱对方经济与持续生产能力,但暂不直接作为立即胜负条件。
### 8.2 限时结束
如果时间结束时双方主建筑都没有被摧毁,具体判定方式暂未最终确定。
待评估方案:
1. 比较双方主建筑剩余生命值百分比;
2. 比较双方被摧毁建筑价值或建筑得分;
3. 比较双方场上剩余战力;
4. 平局后进入短时间加时,先摧毁建筑的一方获胜。
当前倾向优先测试“建筑摧毁得分”或“主建筑剩余生命值”方案,最终以实际对战体验为准。
## 九、角色与养成方向
角色是玩家收集和配置的战斗单位。每个角色可以对应一种兵营生产方案。
后续养成方向:
- 角色通过抽卡或其他收集方式获得;
- 每次对战后获得抽奖券,作为免费获取渠道;
- 角色卡片可以升级;
- 普通等级提升基础属性;
- 在关键等级节点改变或强化技能;
- 角色具有稀有度;
- 稀有角色可以拥有更强或更特殊的能力,同时承担更高的金币消耗或生产成本;
- 需要避免稀有度直接造成无法通过策略弥补的数值碾压。
抽卡概率、碎片来源、金币消耗、升级节点和付费方案属于长期系统,暂不影响首版核心战斗验证。
## 十、首版验证优先级
1. 缩短地图并制作 1~2 条进攻路线;
2. 实现少量障碍物和基本自动寻路;
3. 保留主角的普通攻击、手动移动和一个手动技能;
4. 实现金矿产出金币;
5. 实现统一兵营模型和角色头像;
6. 实现兵营生产单位和绿色生产进度条;
7. 实现建筑不能重叠、不能过近和不能堵住出生点的摆放校验;
8. 实现攻击建筑和摧毁主建筑的胜负逻辑;
9. 通过单机对战或简单 AI 验证“发展经济还是快速建兵”的选择是否有趣;
10. 核心战斗成立后,再加入更多角色、装备、养成和对战模式。
## 十一、当前明确不做的内容
- 首版不制作复杂的完整 RTS 网格编辑系统;
- 首版不制作大量不同兵营模型;
- 首版不让主角成为主要输出核心;
- 首版不先实现完整抽卡、充值和联网对战;
- 首版不先扩展大量角色和装备;
- 首版不在限时胜负规则未验证前绑定复杂的排名和奖励系统。