138 lines
4.4 KiB
Markdown
138 lines
4.4 KiB
Markdown
|
|
# Echo
|
|||
|
|
|
|||
|
|
Echo 是一个基于 Unity 的交互叙事 / 探索项目。当前项目版本为 `0.1.1`,核心开发内容集中在 `Assets/_Project`,包含场景加载、标题界面、游戏内流程、交互、任务、叙事、设置、结局和 LLM 聊天相关系统。
|
|||
|
|
|
|||
|
|
## 环境要求
|
|||
|
|
|
|||
|
|
- Unity `2022.3.62f3`
|
|||
|
|
- Git LFS `3.x` 或更高版本
|
|||
|
|
- 推荐使用 Unity Hub 打开项目根目录
|
|||
|
|
|
|||
|
|
主要 Unity 包:
|
|||
|
|
|
|||
|
|
- Universal RP `14.0.12`
|
|||
|
|
- Input System `1.14.2`
|
|||
|
|
- TextMesh Pro `3.0.7`
|
|||
|
|
- Timeline `1.7.7`
|
|||
|
|
- ProBuilder `5.2.4`
|
|||
|
|
- Unity Recorder `4.0.3`
|
|||
|
|
|
|||
|
|
## 快速开始
|
|||
|
|
|
|||
|
|
```powershell
|
|||
|
|
git lfs install
|
|||
|
|
git clone <repo-url>
|
|||
|
|
cd <repo-folder>
|
|||
|
|
git lfs pull
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
然后用 Unity Hub 打开仓库根目录。首次打开时 Unity 会重新生成 `Library`,导入资源会比较久,属于正常情况。
|
|||
|
|
|
|||
|
|
如果资源显示为很小的文本指针,或者贴图 / 模型丢失,通常是 LFS 资源没有拉下来,重新执行:
|
|||
|
|
|
|||
|
|
```powershell
|
|||
|
|
git lfs pull
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 运行入口
|
|||
|
|
|
|||
|
|
Build Settings 当前启用的场景顺序:
|
|||
|
|
|
|||
|
|
1. `Assets/_Project/Scenes/PreVer/Scene_Loading/LoadingScene.unity`
|
|||
|
|
2. `Assets/_Project/Scenes/PreVer/Scene_Title/TitleScene.unity`
|
|||
|
|
3. `Assets/_Project/Scenes/PreVer/Scene_InGame/inGame.unity`
|
|||
|
|
|
|||
|
|
开发调试时可以从 `TitleScene` 或 `inGame` 进入;需要验证完整流程时从 `LoadingScene` 开始。
|
|||
|
|
|
|||
|
|
## 项目结构
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Assets/
|
|||
|
|
_Project/ 项目自有内容,主要开发目录
|
|||
|
|
ThirdParty/ 第三方美术、UI、模型、贴图等资源
|
|||
|
|
Plugins/ 插件与运行库,例如 DOTween
|
|||
|
|
TextMesh Pro/ TextMesh Pro 资源
|
|||
|
|
Packages/ Unity 包依赖清单
|
|||
|
|
ProjectSettings/ Unity 项目设置
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
`Assets/_Project` 主要目录:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Animations/ 动画资源
|
|||
|
|
Art/ 项目自有美术资源
|
|||
|
|
Audio/ 音频资源
|
|||
|
|
Data/ ScriptableObject、任务、叙事、道具等数据
|
|||
|
|
Docs/ 系统设计与技术文档
|
|||
|
|
Input/ 输入配置
|
|||
|
|
Prefabs/ 角色、环境、UI 等预制体
|
|||
|
|
Scenes/ 项目场景
|
|||
|
|
Scripts/ 项目 C# 代码
|
|||
|
|
Settings/ 项目运行设置
|
|||
|
|
Shaders/ Shader 与渲染相关资源
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 核心代码位置
|
|||
|
|
|
|||
|
|
- `Assets/_Project/Scripts/Core`:场景加载、存档、设置、任务、叙事、触发器、输入锁等基础系统
|
|||
|
|
- `Assets/_Project/Scripts/Interaction`:交互与条件校验
|
|||
|
|
- `Assets/_Project/Scripts/Inventory`:物品与库存相关逻辑
|
|||
|
|
- `Assets/_Project/Scripts/Player`:玩家控制与玩家状态
|
|||
|
|
- `Assets/_Project/Scripts/UI`:标题、暂停菜单、设置面板、任务 UI、叙事 UI 等
|
|||
|
|
- `Assets/_Project/Scripts/EndingSystem`:结局流程与胜利条件
|
|||
|
|
- `Assets/_Project/Scripts/LLM Manager`:LLM 对话、Facts、Function Calling 相关逻辑
|
|||
|
|
|
|||
|
|
## 文档
|
|||
|
|
|
|||
|
|
项目内已有一批系统文档,放在:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Assets/_Project/Docs
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
常用入口:
|
|||
|
|
|
|||
|
|
- `InteractionSystem_Technical_Reference.md`
|
|||
|
|
- `TaskSystem_Technical_Reference.md`
|
|||
|
|
- `NarrationSystem_Technical_Reference.md`
|
|||
|
|
- `SettingsSystem_Technical_Reference.md`
|
|||
|
|
- `LLM_Facts_and_FunctionCalling_Setup.md`
|
|||
|
|
- `EndingSystem_Technical_Reference.md`
|
|||
|
|
|
|||
|
|
## 版本控制约定
|
|||
|
|
|
|||
|
|
需要提交:
|
|||
|
|
|
|||
|
|
- `Assets`
|
|||
|
|
- `Packages`
|
|||
|
|
- `ProjectSettings`
|
|||
|
|
- 所有需要的 `.meta` 文件
|
|||
|
|
- `.gitignore`
|
|||
|
|
- `.gitattributes`
|
|||
|
|
- `README.md`
|
|||
|
|
|
|||
|
|
不需要提交:
|
|||
|
|
|
|||
|
|
- `Library`
|
|||
|
|
- `Temp`
|
|||
|
|
- `Obj`
|
|||
|
|
- `Build` / `Builds`
|
|||
|
|
- `Recordings`
|
|||
|
|
- `Logs`
|
|||
|
|
- `UserSettings`
|
|||
|
|
- Visual Studio / Rider / 其他 IDE 自动生成文件
|
|||
|
|
- 导入前的 `.unitypackage` 包文件
|
|||
|
|
- `.pdb` / `.mdb` 调试符号及其 `.meta`
|
|||
|
|
- Addressables / StreamingAssets 下自动生成的 `aa` 内容
|
|||
|
|
|
|||
|
|
`Assets/ThirdParty` 不要整体忽略。这里面的大贴图、模型、音频、视频、PSD、PDF、DLL 等二进制资源已经通过 `.gitattributes` 交给 Git LFS 管理。这样第三方资源仍然会随项目同步,但不会直接塞进普通 Git 历史。
|
|||
|
|
|
|||
|
|
如果以后确实需要保留某个原始 `.unitypackage` 文件,可以在 `.gitignore` 里给那个具体文件加例外规则;默认情况下,仓库只保留导入后的可用资源。
|
|||
|
|
|
|||
|
|
## 注意事项
|
|||
|
|
|
|||
|
|
- 不要手动删除或重新生成已有资源的 `.meta` 文件,否则 Unity 引用可能丢失。
|
|||
|
|
- 第三方资源升级时,尽量单独提交,方便回滚。
|
|||
|
|
- 第一次打开项目、切换分支或更新大量资源后,Unity 重新导入较慢是正常现象。
|
|||
|
|
- 构建前确认 Build Settings 中启用的场景顺序没有被改乱。
|