2026-03-26 21:32:43 +08:00
|
|
|
# MeshRendererComponent::SetMaterials
|
|
|
|
|
|
|
|
|
|
批量设置整组材质槽。
|
|
|
|
|
|
|
|
|
|
```cpp
|
|
|
|
|
void SetMaterials(const std::vector<Resources::ResourceHandle<Resources::Material>>& materials);
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 行为说明
|
|
|
|
|
|
2026-04-03 11:50:13 +08:00
|
|
|
当前实现会整体替换所有材质槽状态:
|
|
|
|
|
|
|
|
|
|
1. 用传入数组直接替换 `m_materials`
|
|
|
|
|
2. 让 `m_materialPaths`、`m_materialRefs`、pending 数组和 async 标记数组与新长度对齐
|
|
|
|
|
3. 对每个槽位从句柄反推路径
|
|
|
|
|
4. 再按路径尝试回填 `AssetRef`
|
|
|
|
|
|
|
|
|
|
这不是增量更新,而是整组重建。旧数组里超出新长度的槽位会被直接丢弃。
|
2026-03-26 21:32:43 +08:00
|
|
|
|
|
|
|
|
## 参数
|
|
|
|
|
|
|
|
|
|
- `materials` - 新的材质句柄数组。
|
|
|
|
|
|
|
|
|
|
## 相关文档
|
|
|
|
|
|
|
|
|
|
- [返回类型总览](MeshRendererComponent.md)
|
|
|
|
|
- [SetMaterial](SetMaterial.md)
|
2026-04-03 11:50:13 +08:00
|
|
|
- [GetMaterialAssetRefs](GetMaterialAssetRefs.md)
|
2026-03-26 21:32:43 +08:00
|
|
|
- [GetMaterialCount](GetMaterialCount.md)
|