# 场景系统 ## 分类 - 核心框架 ## 目的 管理 Unity 场景的加载、资源配置读取和场景生命周期回调。 --- ## 核心路径 - 场景管理器:`Assets/Game/GameHFScripte/GameFunction/SceneManager/` - Unity 场景:`Assets/Game/GameMono/Scenes/` --- ## 核心类 | 类 | 职责 | |---|---| | `HFSceneMgr` | 场景管理器单例,继承 `AbsHFSingleMonoBehaviour` | | `enHFSceneName` | 场景枚举,例如 `Game = 80001` | --- ## 加载流程 ```text LoadScene(enHFSceneName scene, Action complete) -> 转为资源/关卡 id -> LoadScene(int levelId, Action complete) -> HFFunCatalogue.NDB.ds_Resource840C5F09TableData.ReadTableByPK(levelId) -> 读取资源配置 ``` ### Editor 模式 ```text 从配置 Path 取文件名 -> SceneManager.LoadScene(scName) ``` ### 非 Editor 模式 ```text HFFunCatalogue.Asset.LoadAsset(levelId, ...) -> 用结果中的 res.sceneName 调用 SceneManager.LoadScene ``` `OnLoadScene()` 同步调用 `SceneManager.LoadScene()` 后立即执行完成回调。 --- ## 生命周期 `ZYCore` 中存在 `IZYH_ZYCore_Scene` 和 `AbsZYH_ZYCore_Scene` 接口: - 进入加载场景 - 加载完成 - 进入/退出场景前后 - 切场景释放 `ZYUGUI` 窗口管理器提供: - `isAutoCloseWhenToggleScene`:切场景时自动关闭 - `isAutoDestoryWhenToggleScene`:切场景时自动销毁 --- ## 使用规则 - 场景切换统一走 `HFFunCatalogue.Scene.LoadScene()`。 - 不要在场景里堆放运行时动态加载的资源。 - 切场景时注意 UI 窗口的自动关闭/销毁配置。 ## 验证 - 构建 `GameHF.csproj` 与 `SFMono.csproj`。 - 在 Unity Editor 中切换场景,确认加载回调、资源引用和 UI 自动关闭行为正确。 - 检查 `enHFSceneName` 与资源配置表的主键一致性。 ## 当前状态 - 待验证 --- ## 相关模块 - [资源管理](资源管理/README.md) - [UI 窗口系统](UI窗口系统/README.md) --- ## 文档关联 > 当本文档发生变更时,应同步检查以下关联文档,避免信息不一致。 | 文档 | 关联原因 | |---|---| | [modules/模块索引.md](../模块索引.md) | 模块索引是项目知识总入口 | | [modules/frameworks/资源管理/README.md](资源管理/README.md) | 场景资源加载依赖资源管理 | | [modules/frameworks/UI窗口系统/README.md](UI窗口系统/README.md) | 切场景影响 UI 窗口生命周期 | | [rules/10-架构说明.md](../../rules/10-架构说明.md) | 架构说明定义总体分层和依赖方向 | | [rules/30-模块登记规则.md](../../rules/30-模块登记规则.md) | 模块登记规则定义分类和状态口径 |