引入 claude code 和 初始化 codex

This commit is contained in:
2026-04-08 17:00:24 +08:00
parent dce5598c70
commit 0a78c0bd94
14 changed files with 1455 additions and 105 deletions
+63 -81
View File
@@ -1,100 +1,82 @@
# VampireLike
# VampireLike
`VampireLike` 是一个基于 **Unity 2022.3 LTS** 的 2D/3D(按当前资源配置)动作生存类项目,使用 `GameMain + GameFramework` 分层组织代码与资源。
## 这是一个学习项目
## 开发环境
VampireLike 是一个基于 **Unity 2022.3 LTS** 的动作生存类项目,旨在实践以下技术要点:
- Unity Editor: `2022.3.62f3c1`
- .NET/C#: Unity 默认编译链
- 推荐 IDE:
- Rider
- Visual Studio
- VS Code
- **GameFramework 框架的组件化设计** — 理解如何通过 `GameEntry.<Component>` 解耦各模块(事件 Entity/UI/Procedure/Resource 等)
- **UI 架构的分层设计** — 实践 Controller / UseCase / View 三层分离,理解"context"作为数据桥梁的作用
- **数据驱动设计** — 通过 DataTable(DRBullet、DREnemy、DRWeapon 等)实现配置与代码的分离
- **数据导向(Data-Oriented)模拟系统** — `SimulationWorld` 展示了如何将 ECS 思路应用于 Unity:SimData 结构体 → Job 并行处理 → 结果提交 → 表现层同步
- **Entity-Component 模式** — 实体(Player/Enemy/Weapon)与数据(EntityData)分离,配合对象池实现高效Spawn/Despawn
- **技能系统设计** — StatModifier(加减/乘算)的组合、AttackComponent 的技能释放流程
- **Target Selector 模式** — 武器通过 `ITargetSelector` 接口支持多种目标选择策略(最近/最低血量/最高血量)
## 快速开始
## 项目结构
1. 使用 Unity Hub 打开项目根目录。
2. 确认 Unity 版本为 `2022.3.62f3c1`(或兼容的 2022.3 LTS 版本)。
3. 进入后等待包与资源导入完成。
4. 在 Editor 中打开场景并运行:
- `Assets/GameMain/Scenes/Menu.unity`
- `Assets/GameMain/Scenes/Main.unity`
- `Assets/GameMain/Scenes/Game.unity`
```
Assets/
├── GameFramework/ # 通用框架(来自 GameFramework.cn)
│ └── Scripts/Runtime/ # Event/Entity/UI/Procedure/Resource 等组件
├── GameMain/ # 游戏业务代码
│ ├── Scripts/
│ │ ├── Base/ # GameEntry 入口
│ │ ├── Components/ # 游戏组件(Movement/Attack/Health/Stat...)
│ │ ├── CustomEvent/ # 自定义事件
│ │ ├── DataTable/ # DR* 数据行定义
│ │ ├── Definition/ # 枚举、结构体、常量
│ │ ├── Entity/ # 实体逻辑与数据
│ │ ├── Procedure/ # 流程状态机
│ │ ├── Simulation/ # 数据导向模拟层
│ │ ├── UI/ # UI(Controller/UseCase/View 分离)
│ │ └── CustomComponent/ # 自定义功能组件
│ ├── Scenes/ # Menu/Main/Game 场景
│ └── DataTables/ # 数据表资源
├── Launcher.unity # 启动场景
├── Plugins/ # 第三方插件(DOTween)
└── Tests/ # 单元测试
```
可选命令行启动(请替换为本机 Unity 路径):
## 技术栈
- Unity 2022.3.62f3c1 LTS
- Input System(`com.unity.inputsystem`)
- Universal Render Pipeline(`com.unity.render-pipelines.universal`)
- TextMeshPro(`com.unity.textmeshpro`)
- DOTween(动画)
- Unity Test Framework(NUnit)
- Newtonsoft.Json(配置序列化)
## 运行方式
1. Unity Hub 打开项目根目录
2. 确认 Unity 版本为 `2022.3.62f3c1`
3. 打开 `Assets/Launcher.unity` 并 Play
CLI 方式:
```powershell
Unity -projectPath .
```
## 项目结构
主要目录说明:
- `Assets/GameMain/`: 游戏业务代码、场景和内容资源。
- `Assets/GameFramework/`: 通用框架与编辑器扩展。
- `Assets/Plugins/`: 第三方插件(如 DOTween)。
- `Assets/Resources/`: 运行时通过 Resources 加载的资源。
- `Assets/StreamingAssets/`: 原样打包到客户端的数据。
- `Json/`、`数据表/`: 配置与数据表。
- `Tools/`: 本地工具脚本和处理流程。
请避免直接修改自动生成目录:
- `Library/`
- `Temp/`
- `Logs/`
- `obj/`
## 代码规范
- C# 使用 4 空格缩进。
- 大括号与声明同行(K&R 风格)。
- 单文件单主类型,文件名与类型名一致。
- 公有类型/成员使用 `PascalCase`。
- 局部变量/参数使用 `camelCase`。
- 需要在 Inspector 暴露的私有字段使用 `[SerializeField]`。
- C# 4 空格缩进,K&R 大括号风格
- 单文件单主类型,文件名与类型名一致
- `PascalCase` 公有成员,`camelCase` 局部变量
- Inspector 暴露用 `[SerializeField] private`
- 保持 `.meta` 文件与资源同步
## 测试
项目已包含 `com.unity.test-framework`。
```powershell
# EditMode 测试
Unity -batchmode -projectPath . -runTests -testPlatform editmode -quit -logFile Logs/editmode-tests.log
```
建议约定:
测试目录:`Assets/Tests/`、`Assets/Tests/Simulation/EditMode/`、`Assets/Tests/Simulation/PlayMode/`
- 测试目录:`Assets/Tests/` 或 `Assets/<Module>/Tests/`
- 测试文件命名:`*Tests.cs`
- 使用 NUnit `[Test]` 编写用例
- 通过 Unity Test Runner 运行:`Window > General > Test Runner`
## 协作
## 常用依赖(Packages)
当前项目使用的关键包包括:
- `com.unity.inputsystem`
- `com.unity.render-pipelines.universal`
- `com.unity.textmeshpro`
- `com.unity.ugui`
- `com.unity.nuget.newtonsoft-json`
- `com.unity.test-framework`
完整依赖见 `Packages/manifest.json`。
## 协作与提交流程(建议)
- 提交信息使用简短祈使句,例如:`UI: Fix shop item refresh logic`
- PR 建议包含:
- 变更摘要
- 测试说明
- 关联任务/Issue
- UI 改动截图或录屏
## 配置注意事项
- 修改依赖时,请同时关注:
- `Packages/manifest.json`
- `ProjectSettings/`
- 大体积二进制资源需与对应 `.meta` 一并提交。
## 许可证
当前仓库未提供许可证文件。若需开源或外发,请先补充 `LICENSE`。
- 提交信息使用简短祈使句,建议包含模块上下文(如 `UI: Fix shop item refresh logic`)
- PR 包含变更摘要、测试说明、关联任务/Issue
- UI/视觉改动附上截图或录屏