1.3 KiB
1.3 KiB
MeshRendererComponent::SetMaterial
按句柄设置单个材质槽。
void SetMaterial(size_t index, const Resources::ResourceHandle<Resources::Material>& material);
void SetMaterial(size_t index, Resources::Material* material);
行为说明
当前实现会:
- 通过
EnsureMaterialSlot()保证数组至少扩容到index + 1。 - 清掉该槽位旧的 pending async load,并复位 async-request 标记。
- 写入
m_materials[index]。 - 根据句柄中的资源路径同步更新
m_materialPaths[index]。 - 再按该路径尝试解析
m_materialRefs[index];失败则重置为无效引用。
参数
index- 材质槽索引。material- 要设置的材质句柄或裸指针。
语义说明
- 这个接口以“运行时材质对象已经存在”为前提。
- 如果材质句柄没有可解析路径,或者路径不能映射到项目资产,
m_materialRefs[index]会变成无效引用。 - 和 SetMaterialPath 相比,它更偏运行时写入,而不是路径驱动的资源恢复。