2026-07-07 18:36:15 +08:00
|
|
|
# 资源管理使用指南
|
2026-05-22 10:41:34 +08:00
|
|
|
|
2026-07-07 18:36:15 +08:00
|
|
|
## 一、AssetBundle 资源加载
|
2026-05-22 10:41:34 +08:00
|
|
|
|
|
|
|
|
### 1.1 加载资源示例
|
|
|
|
|
|
|
|
|
|
```csharp
|
|
|
|
|
public class ResourceLoader : MonoBehaviour
|
|
|
|
|
{
|
|
|
|
|
public void LoadPlayerModel(int resId, Action<GameObject> onLoaded)
|
|
|
|
|
{
|
2026-07-07 18:36:15 +08:00
|
|
|
// 通过 HFFunCatalogue 统一入口加载资源
|
|
|
|
|
// resId: 从 Res 配置表中读取的资源 ID
|
2026-05-22 10:41:34 +08:00
|
|
|
HFFunCatalogue.Asset.LoadAsset(resId, (res, obj) =>
|
|
|
|
|
{
|
|
|
|
|
if (obj != null)
|
|
|
|
|
{
|
|
|
|
|
GameObject model = res.GetAsset<GameObject>();
|
|
|
|
|
onLoaded?.Invoke(model);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Debug.LogError($"加载失败: resId={resId}");
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 1.2 实体资源加载示例
|
|
|
|
|
|
|
|
|
|
```csharp
|
2026-07-07 18:36:15 +08:00
|
|
|
// 在 Entity 中加载资源
|
2026-05-22 10:41:34 +08:00
|
|
|
HFFunCatalogue.Asset.LoadAsset(data.EntityRes.Id, (res, obj) => {
|
|
|
|
|
if (!entity.isDeath)
|
|
|
|
|
{
|
|
|
|
|
var Boddy = res.GetAsset<GameObject>();
|
|
|
|
|
data.SetBoddy(Boddy);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2026-07-07 18:36:15 +08:00
|
|
|
## 二、资源管理 API
|
2026-05-22 10:41:34 +08:00
|
|
|
|
|
|
|
|
### 2.1 常用方法
|
|
|
|
|
|
|
|
|
|
| 类别 | 管理器 | 常用方法 |
|
|
|
|
|
|-----|-------|---------|
|
|
|
|
|
| **资源** | `HFABMgr` | `LoadAsset()`, `OnStartLoad()` |
|
|
|
|
|
|
|
|
|
|
### 2.2 资源加载流程
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
资源加载流程:
|
|
|
|
|
OnStartLoad(request)
|
|
|
|
|
│
|
|
|
|
|
▼
|
|
|
|
|
检查缓存 → 获取/创建 HFAssetLoader
|
|
|
|
|
│
|
|
|
|
|
▼
|
|
|
|
|
loader.AddRequest(request)
|
|
|
|
|
│
|
|
|
|
|
▼
|
|
|
|
|
loader.LoadAsset() → 异步加载
|
|
|
|
|
│
|
|
|
|
|
▼
|
|
|
|
|
加载完成 → 回调处理
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 三、资源管理注意事项
|
|
|
|
|
|
|
|
|
|
### 3.1 性能优化建议
|
|
|
|
|
|
|
|
|
|
- 及时释放不再使用的资源
|
|
|
|
|
- 使用异步加载避免卡顿
|
|
|
|
|
- 合理使用资源缓存
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
**版本**: v1.0
|
|
|
|
|
**生效日期**: 2026年
|
2026-07-07 18:36:15 +08:00
|
|
|
**适用范围**: GiftGameX 项目业务开发人员
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 文档关联
|
|
|
|
|
|
|
|
|
|
> 当本文档发生变更时,应同步检查以下关联文档,避免信息不一致。
|
|
|
|
|
|
|
|
|
|
| 文档 | 关联原因 |
|
|
|
|
|
|---|---|
|
|
|
|
|
| [资源管理入口](README.md) | 本文件是资源管理模块的子文档 |
|
|
|
|
|
| [UI 窗口系统](../UI窗口系统/README.md) | UI 资源加载依赖资源管理 |
|
|
|
|
|
| [实体系统](../实体系统/README.md) | 实体资源加载依赖资源管理 |
|
|
|
|
|
| [场景系统](../场景系统.md) | 场景资源加载依赖资源管理 |
|
|
|
|
|
| [modules/模块索引.md](../../模块索引.md) | 模块索引是项目知识总入口 |
|
|
|
|
|
| [rules/10-架构说明.md](../../../rules/10-架构说明.md) | 架构说明定义总体分层和依赖方向 |
|
|
|
|
|
| [rules/30-模块登记规则.md](../../../rules/30-模块登记规则.md) | 模块登记规则定义分类和状态口径 |
|