# 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 cd 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 中启用的场景顺序没有被改乱。