Files
XCEngine/docs/api/XCEngine/Components/MeshRendererComponent/SetMaterial.md

1.3 KiB
Raw Blame History

MeshRendererComponent::SetMaterial

按句柄设置单个材质槽。

void SetMaterial(size_t index, const Resources::ResourceHandle<Resources::Material>& material);
void SetMaterial(size_t index, Resources::Material* material);

行为说明

当前实现会:

  1. 通过 EnsureMaterialSlot() 保证数组至少扩容到 index + 1
  2. 清掉该槽位旧的 pending async load并复位 async-request 标记。
  3. 写入 m_materials[index]
  4. 根据句柄中的资源路径同步更新 m_materialPaths[index]
  5. 再按该路径尝试解析 m_materialRefs[index];失败则重置为无效引用。

参数

  • index - 材质槽索引。
  • material - 要设置的材质句柄或裸指针。

语义说明

  • 这个接口以“运行时材质对象已经存在”为前提。
  • 如果材质句柄没有可解析路径,或者路径不能映射到项目资产,m_materialRefs[index] 会变成无效引用。
  • SetMaterialPath 相比,它更偏运行时写入,而不是路径驱动的资源恢复。

相关文档