public sealed class MaterialVisual : Component
{
[Sync, Change]
public string MaterialPath { get; set; }
protected override void OnStart()
{
Apply();
}
private void OnMaterialPathChanged()
{
Apply();
}
private void Apply()
{
if (string.IsNullOrEmpty(MaterialPath))
return;
var renderer = Components.Get<ModelRenderer>();
if (renderer == null) return;
renderer.SetMaterial(Material.Load(MaterialPath));
}
}