Я загружаю модель USDZ с помощью RealityKit в Swift. Модель отлично загружается своей текстурой.
Однако я не могу изменить диффузное свойство материала, материал всегда возвращается как AnyMaterial
.
Я могу полностью переопределить материал с помощью SimpleMaterial
или изменить диффузный цвет USDZ перед запуском приложения, но, похоже, не могу сделать это во время выполнения, есть идеи?
Я просто хочу изменить одно свойство
/*
Find an entity within the parent, and find the material, test to try and change it's material
**/
private func updateColor(entity: Entity) {
guard
let found = entity.findEntity(named: "MyItem"),
var modelComponent = found.components[ModelComponent] as? ModelComponent,
let existingMaterial = modelComponent.materials.first else {
return
}
// This is `AnyMaterial` - no diffuse property
// What can I use here to change the diffuse?
modelComponent.materials = [existingMaterial]
// Change to yellow for testing
//var material = SimpleMaterial()
//material.baseColor = .color(.yellow)
//modelComponent.materials = [material]
found.components.set(modelComponent)
}