39 lines
815 B
Markdown
39 lines
815 B
Markdown
# 模型热更新与材质切换
|
|
|
|
## 模型热加载 / 销毁 / 替换
|
|
```ts
|
|
// 加载
|
|
await sdk.model.load({ id: 'car', url: '/models/car.glb', draco: true })
|
|
|
|
// 销毁
|
|
await sdk.model.destroy('car')
|
|
|
|
// 替换(内部自动销毁旧实例并加载新实例)
|
|
await sdk.model.replace('car', { url: '/models/car-white.glb' })
|
|
```
|
|
|
|
监听状态:
|
|
```ts
|
|
sdk.model.on('loaded', handler)
|
|
sdk.model.on('replaced', handler)
|
|
sdk.model.on('destroyed', handler)
|
|
```
|
|
|
|
## 材质切换
|
|
```ts
|
|
// 应用材质预设
|
|
sdk.material.apply({
|
|
target: 'body', // 部件或分组名称
|
|
material: 'paint/blue', // 预设 Key
|
|
})
|
|
|
|
// 批量切换
|
|
sdk.material.batch([
|
|
{ target: 'wheel', material: 'rim/chrome' },
|
|
{ target: 'glass', material: 'glass/clear' },
|
|
])
|
|
|
|
// 还原默认材质
|
|
sdk.material.reset('body')
|
|
```
|