# AnaGaia **Repository Path**: KunFei7/game-jam-project ## Basic Information - **Project Name**: AnaGaia - **Description**: unity协作仓库 - **Primary Language**: C# - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-06-05 - **Last Updated**: 2026-08-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ChessPieces 一个 Unity 2D 平面回合制碰撞对战原型。玩家和 AI 使用相同阵容,通过“选择棋子 -> 拖拽蓄力 -> 反方向发射 -> 物理碰撞结算”的方式进行对局。当前可在默认三棋子阵容和四英雄阵容之间切换。 当前版本目标不是完整商业化游戏,而是先验证 `GameDesign.html` 里的最小核心循环: - 单屏封闭战场 - 墙壁完全反弹 - 地面摩擦衰减 - 棋子重量、碰撞、血量 - 战士 / 法师 / 奶妈三种模板 - 简单 AI - 战斗反馈:行动光环、伤害 / 治疗跳字、碰撞相机震动 - 初版大招充能(基于伤害/治疗/受伤/击杀四维度)、释放与环形充能进度条(DOTween 补间动画) - 四英雄阵容模式(铸星王女 / 双子星 / 雷星使 / 圣辉守卫) - 胜负判断(双方同时全灭时按当前行动阵营判胜)与重新开始 ## Unity 版本 项目使用: ```text Unity 2023.2.9f1 ``` 建议使用相同版本打开,避免 2D URP、序列化资源或包版本出现差异。 ## 如何运行 1. 用 Unity 打开项目根目录。 2. 打开场景: ```text Assets/ChessPieces/Scenes/Prototype.unity ``` 3. 点击 Play。 4. 玩家回合时,点击己方棋子并拖拽。 5. 松开鼠标后,棋子会朝拖拽反方向发射。 ## 操作方式 - 鼠标左键点选己方棋子。 - 按住并拖拽:拖拽反方向为发射方向。 - 拖拽距离越远,发射速度越高。 - 发射速度有最大上限。 - 拖拽时会显示黄色箭头,箭头方向表示发射方向,箭头长度会随本次起步速度变化。 - 棋子环形进度条表示大招能量,满值变色表示当前棋子大招可用。 - 拖拽过程中按 `Esc` 取消本次拖拽。 - 按 `R` 或点击 `重新开始` 按钮重开一局。 - 左下角 `菜单` 按钮可展开/收起左侧信息面板。 - 右下角 `设置` 按钮可调节屏幕振动开关和游戏速度。 - 右上角显示当前回合数。 - 信息面板内可切换 `四英雄阵容` 和 `默认三棋子` 模式。 - 信息面板内显示当前行动者和后续 5 步行动预告。 ## 当前胜负规则 - AI 全部棋子死亡:显示 `你赢了`。 - 玩家全部棋子死亡:显示 `你输了`。 - 双方同时全部死亡:按当前行动阵营判胜,玩家行动导致同归于尽则显示 `你赢了`,AI 行动导致同归于尽则显示 `你输了`。 - 每次玩家或 AI 开始操作前都会先执行胜负判定。 ## 当前行动顺序 当前不是简单的“我方整体回合 -> 敌方整体回合”,而是“阵营交替 + 阵营内固定顺序轮转”: ```text 我方棋子1 -> 敌方棋子1 -> 我方棋子2 -> 敌方棋子2 -> 我方棋子3 -> 敌方棋子3 -> 循环 ``` 如果某个槽位的棋子已经死亡,会自动跳过它,继续找该阵营序列里的下一枚存活棋子。四英雄阵容下同样遵循这个规则,只是阵营内顺序包含四枚棋子。 左侧信息面板会显示当前行动者和后续 5 步行动预告,当前正在行动的棋子底部会显示行动提示。 ## 棋子模板 当前阵容来自 `GameDesign.html`: | 模板 | 生命值 | 基础攻击力 | 特殊规则 | | --- | ---: | ---: | --- | | 战士 | 120 | 30 | 己方行动回合内受到碰撞伤害减免 25% | | 法师 | 80 | 15 | 远程技能模板预留,当前先按基础碰撞单位处理 | | 奶妈 | 90 | 10 | 己方行动回合撞到友军时治疗 25 | 对应配置资产: ```text Assets/ChessPieces/Configs/Pieces/warrior.asset Assets/ChessPieces/Configs/Pieces/mage.asset Assets/ChessPieces/Configs/Pieces/healer.asset ``` ### 四英雄阵容 通过左侧面板点击 `四英雄阵容` 按钮可切换为以下阵容: | 模板 | 职业 | 生命值 | 基础攻击力 | 特殊机制 | | --- | --- | ---: | ---: | --- | | 铸星王女 | 战士 | 130 | 30 | 被动铸造叠层 + 君王之剑额外伤害 | | 双子星 | 法师 | 80 | 15 | 大招生成分身或与分身互换位置 | | 雷星使 | 法师 | 85 | 12 | 碰墙激活小雷圈,大招生成强化雷圈 | | 圣辉守卫 | 奶妈 | 100 | 8 | 碰友军施加护盾,大招范围回复+护盾 | ## 大招规则 当前大招机制仍是原型验证版本,主要用于测试充能、可释放状态和职业差异,不代表最终品质。 充能来源基于四个维度:造成伤害、造成治疗、受到伤害、造成击杀。释放大招的回合中,释放者自身不再获得充能。 ### 默认三棋子大招 | 模板 | 初版大招效果 | | ---- | ------------ | | 战士 | 本次行动起步冲量 / 速度翻倍 | | 法师 | 本次行动改为朝目标方向发射一枚当前血量一半的分身 | | 奶妈 | 本次行动结算的所有治疗效果翻倍 | ### 四英雄大招 | 模板 | 大招效果 | | ---- | -------- | | 铸星王女 | 王庭坠击:起步速度翻倍,不受棋子碰撞反作用;敌人仍会被命中、受伤和单向击退 | | 双子星 | 星轨交错:无分身时发射分身;有分身时互换位置并回满分身血量 | | 雷星使 | 雷暴星环:生成跟随自身的强化雷圈,敌人进出范围反复受伤 | | 圣辉守卫 | 圣域展开:先完成冲刺,行动稳定后范围内友方即时回复生命并获得护盾 | ## 主要目录 ```text Assets ├── ChessPieces │ ├── Configs │ │ ├── Pieces │ │ ├── Skills │ │ ├── PrototypeAI.asset │ │ ├── PrototypeArena.asset │ │ ├── PrototypeCollisionPhysics.asset │ │ └── PrototypeMatch.asset │ ├── Editor │ ├── Prefabs │ ├── Scenes │ ├── Scripts │ │ ├── AI │ │ ├── Camera │ │ ├── Config │ │ ├── Core │ │ ├── Pieces │ │ └── UI │ └── ARCHITECTURE.md ├── Plugins │ ├── DOTween │ └── SkillsForUnity └── Resources └── DOTweenSettings.asset ``` ## 配置资产说明 `PrototypeMatch.asset` 一局游戏的总入口。负责引用场地配置、物理配置、AI 配置、默认棋子阵容、四英雄阵容和棋子 Prefab。 `PrototypeArena.asset` 负责场地尺寸、墙壁厚度、墙壁反弹、摄像头高度、场地颜色和墙壁颜色。 `PrototypeCollisionPhysics.asset` 负责地面摩擦、法线碰撞伤害系数、伤害触发阈值和棋子停止判定。 `PrototypeAI.asset` 负责 AI 思考延迟和瞄准误差。 `Pieces/*.asset` 负责单个棋子模板的血量、重量、基础攻击力、减伤、治疗量、半径、发射力度和大招能量参数。 `Pieces/Heroes/*.asset` 负责铸星王女、双子星、雷星使、圣辉守卫四个英雄的基础角色配置。 `Skills/*.asset` 与 `Skills/Heroes/*.asset` 负责默认职业和四英雄的技能配置,包括技能类型、专属参数和大招充能系数。 ## 代码结构 核心运行时代码在: ```text Assets/ChessPieces/Scripts ``` 主要脚本: - `Core/MatchSceneBootstrap.cs`:场景入口,把 `MatchConfig` 交给游戏控制器。 - `Core/ChessGameController.cs`:对局流程、输入、AI 回合、碰撞结算、胜负判断、临时 UI 和战斗反馈调度。 - `Pieces/ChessPiece.cs`:棋子实体,负责刚体、血量、显示、死亡、行动光环和充能环。 - `Pieces/PieceUltimateHandlers.cs`:按棋子类型拆分的大招处理逻辑。 - `UI/FloatingCombatText.cs`:战斗跳字,用于显示伤害和治疗反馈。 - `Config/PieceTemplate.cs`:棋子基础模板数据,包含职业、血量、重量、攻击、发射力度、外观颜色和技能配置引用。 - `Config/Skills/*.cs`:技能配置 SO 类型,按默认职业、铸星王女、双子星、雷星使、圣辉守卫拆分专属技能参数。 - `Config/ArenaConfig.cs`:场地和摄像机配置。 - `Config/CollisionPhysicsConfig.cs`:碰撞和摩擦配置。 - `Config/AiConfig.cs`:AI 配置。 - `AI/SimpleChessAI.cs`:当前简单 AI。 - `Pieces/ArenaBoundary.cs`:墙壁反弹处理。 编辑器工具在: ```text Assets/ChessPieces/Editor/ChessPiecesProjectBuilder.cs ``` Unity 菜单: ```text Chess Pieces/Build Prototype Content ``` 这个菜单会生成或更新原型需要的配置、Prefab 和场景。 ## 当前实现范围 已经实现: - 可进入默认三棋子或四英雄阵容对局 - 战士 / 法师 / 奶妈三模板 - 基础物理碰撞 - 墙壁反弹 - 地面摩擦 - Angry Birds 式拖拽发射 - 拖拽取消 - 发射箭头,且箭头长度随起步速度变化 - 当前行动棋子底部光环与银色科技感瞄准环 - 伤害和治疗跳字 - 初版大招充能(四维度:伤害/治疗/受伤/击杀)、释放和环形充能进度条(DOTween 补间动画) - 碰撞伤害保底 1 点 - 大招回合释放者充能封禁 - 血条外边框与数值文字显示 - 统一阵营颜色与血条颜色 - 碰撞相机震动 - 四英雄阵容模式(铸星王女/双子星/雷星使/圣辉守卫) - 角色基础配置与技能配置 SO 分离 - 当前行动者 + 后续 5 步行动预告 - 简单 AI - 死亡与胜负判断(双方同灭按当前行动阵营判胜) - 重新开始 - OnGUI 信息面板、设置面板、回合数显示 还没有正式实现: - 完整 UI Canvas - 正式血条 UI - 治疗特效 - 死亡特效 - 音效 - 法师远程技能 - 更聪明的 AI - 正式关卡编辑流程 ## 建议的下一步 优先级建议: 1. 把当前 `OnGUI` 临时面板和行动预告换成正式 `Canvas` UI。 2. 在场景 Hierarchy 中显式整理 `GameRoot / Arena / Teams / UI / VFX / Audio`。 3. 增强行动预告表现,例如头像、血量、满能状态和死亡跳过说明。 4. 增加死亡表现。 5. 增加碰撞音效和胜负音效。 6. 给法师实现第一个远程技能原型。 更详细的架构说明见: ```text Assets/ChessPieces/ARCHITECTURE.md ```