引入 claude code 和 初始化 codex
This commit is contained in:
@@ -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/视觉改动附上截图或录屏
|
||||
|
||||
Reference in New Issue
Block a user