5.4 KiB
5.4 KiB
| outline | ||
|---|---|---|
|
ResourceManager
- 源文件:
packages/sdk/src/manager/ResourceManager.ts - 文档位置:
packages/docs/api/manager/ResourceManager.md
枚举:ResourceType
- 作用:资源类型
| 枚举项 | 值 | 说明 |
|---|---|---|
TEXTURE |
"texture" |
纹理 |
MATERIAL |
"material" |
材质 |
GEOMETRY |
"geometry" |
几何体 |
MODEL |
"model" |
模型 |
RAW_DATA |
"raw_data" |
原始数据 |
接口:ILoadProgress
- 作用:资源加载进度信息
字段
| 字段名 | 类型 | 必填 | 作用 |
|---|---|---|---|
loaded |
number |
是 | 已加载的字节数 |
total |
number |
是 | 总字节数 |
progress |
number |
是 | 加载进度百分比 (0-100) |
类:ResourceManager
- 作用:资源管理器 负责加载、缓存和管理三维资源
构造函数
new ResourceManager()
-
作用:创建 ResourceManager 实例。
-
入参:无
-
出参:
ResourceManager -
返回说明:返回当前类实例。
属性
| 属性名 | 可见性 | 类型 | 作用 |
|---|---|---|---|
cache |
public |
Map<string, unknown> |
用于保存 cache 的映射关系。 |
textureLoader |
public |
THREE.TextureLoader |
用于保存 textureLoader 对应的数据。 |
fbxLoader |
public |
FBXLoader |
用于保存 fbxLoader 对应的数据。 |
gltfLoader |
public |
GLTFLoader |
用于保存 gltfLoader 对应的数据。 |
fileLoader |
public |
THREE.FileLoader |
用于保存 fileLoader 对应的数据。 |
loadingManager |
public |
THREE.LoadingManager |
用于统一管理 loadingManager 相关能力。 |
方法
createGLTFLoader(manager?: THREE.LoadingManager): GLTFLoader
-
作用:创建 GLTF 加载器
-
入参:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
manager |
THREE.LoadingManager |
否 | - 加载管理器 |
- 出参:
GLTFLoader - 返回说明:GLTF 加载器实例
loadTexture(url: string, onProgress?: (progress: ILoadProgress) => void): Promise<THREE.Texture<unknown, THREE.TextureEventMap>>
-
作用:加载纹理
-
入参:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
url |
string |
是 | - 纹理文件路径 |
onProgress |
(progress: ILoadProgress) => void |
否 | - 加载进度回调 |
- 出参:
Promise<THREE.Texture<unknown, THREE.TextureEventMap>> - 返回说明:纹理对象
loadFBX(url: string, onProgress?: (progress: ILoadProgress) => void): Promise<THREE.Group<THREE.Object3DEventMap>>
-
作用:加载 FBX 模型
-
入参:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
url |
string |
是 | - FBX 文件路径 |
onProgress |
(progress: ILoadProgress) => void |
否 | - 加载进度回调 |
- 出参:
Promise<THREE.Group<THREE.Object3DEventMap>> - 返回说明:FBX 模型对象 (Group)
loadGLTF(url: string, onProgress?: (progress: ILoadProgress) => void): Promise<THREE.Object3D<THREE.Object3DEventMap>>
-
作用:加载 GLTF 模型
-
入参:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
url |
string |
是 | - GLTF 文件路径 |
onProgress |
(progress: ILoadProgress) => void |
否 | - 加载进度回调 |
- 出参:
Promise<THREE.Object3D<THREE.Object3DEventMap>> - 返回说明:GLTF 模型对象
loadRawData(url: string, onProgress?: (progress: ILoadProgress) => void): Promise<ArrayBuffer>
-
作用:加载原始二进制数据
-
入参:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
url |
string |
是 | - 原始数据文件路径 |
onProgress |
(progress: ILoadProgress) => void |
否 | - 加载进度回调 |
- 出参:
Promise<ArrayBuffer> - 返回说明:ArrayBuffer 数据
get<T = unknown>(type: ResourceType, key: string): T | undefined
-
作用:从缓存中获取资源
-
入参:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
type |
ResourceType |
是 | - 资源类型 |
key |
string |
是 | - 资源键名 |
- 出参:
T \| undefined - 返回说明:资源对象,如果不存在则返回 undefined
has(type: ResourceType, key: string): boolean
-
作用:检查资源是否存在于缓存中
-
入参:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
type |
ResourceType |
是 | - 资源类型 |
key |
string |
是 | - 资源键名 |
- 出参:
boolean - 返回说明:是否存在
remove(type: ResourceType, key: string): boolean
-
作用:从缓存中移除资源
-
入参:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
type |
ResourceType |
是 | - 资源类型 |
key |
string |
是 | - 资源键名 |
- 出参:
boolean - 返回说明:是否成功移除
clear(): void
-
作用:清空所有缓存
-
入参:无
-
出参:
void -
返回说明:无返回值。
getCacheSize(): number
-
作用:获取缓存大小
-
入参:无
-
出参:
number -
返回说明:缓存中的资源数量
dispose(): void
-
作用:销毁资源管理器
-
入参:无
-
出参:
void -
返回说明:无返回值。
构造示例
- 当前 Demo 中没有直接展示
ResourceManager的构造调用。
函数示例
- 当前 Demo 中没有直接展示
ResourceManager的公开方法调用。