99 lines
2.4 KiB
Markdown
99 lines
2.4 KiB
Markdown
|
|
# 场景系统
|
||
|
|
|
||
|
|
## 分类
|
||
|
|
|
||
|
|
- 核心框架
|
||
|
|
|
||
|
|
## 目的
|
||
|
|
|
||
|
|
管理 Unity 场景的加载、资源配置读取和场景生命周期回调。
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 核心路径
|
||
|
|
|
||
|
|
- 场景管理器:`Assets/Game/GameHFScripte/GameFunction/SceneManager/`
|
||
|
|
- Unity 场景:`Assets/Game/GameMono/Scenes/`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 核心类
|
||
|
|
|
||
|
|
| 类 | 职责 |
|
||
|
|
|---|---|
|
||
|
|
| `HFSceneMgr` | 场景管理器单例,继承 `AbsHFSingleMonoBehaviour<HFSceneMgr>` |
|
||
|
|
| `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 窗口的自动关闭/销毁配置。
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 相关模块
|
||
|
|
|
||
|
|
- [资源管理](资源管理/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) | 模块登记规则定义分类和状态口径 |
|