From e145ce1d01334ddea612077150138f893ea41dd7 Mon Sep 17 00:00:00 2001 From: Chris Santora Date: Sat, 17 Jul 2021 18:46:04 -0700 Subject: [PATCH] Updated EditorMaterialComponentSlot to support editing property overrides and UV overrides for the material, regardless of whether there is a material override or not. Signed-off-by: santorac <55155825+santorac@users.noreply.github.com> --- .../Material/EditorMaterialComponentSlot.cpp | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponentSlot.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponentSlot.cpp index 717b87feec..f9243510cf 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponentSlot.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponentSlot.cpp @@ -227,9 +227,11 @@ namespace AZ OnPropertyChanged(); }; - if (m_materialAsset.GetId().IsValid()) + Data::Asset assetToEdit = m_materialAsset.GetId().IsValid() ? m_materialAsset : m_defaultMaterialAsset; + + if (assetToEdit.GetId().IsValid()) { - if (EditorMaterialComponentInspector::OpenInspectorDialog(GetLabel(), m_materialAsset.GetId(), m_propertyOverrides, applyPropertyChangedCallback)) + if (EditorMaterialComponentInspector::OpenInspectorDialog(GetLabel(), assetToEdit.GetId(), m_propertyOverrides, applyPropertyChangedCallback)) { OnMaterialChanged(); } @@ -244,10 +246,12 @@ namespace AZ // Treated as a special property. It will be updated together with properties. OnPropertyChanged(); }; - - if (m_materialAsset.GetId().IsValid()) + + Data::Asset assetToEdit = m_materialAsset.GetId().IsValid() ? m_materialAsset : m_defaultMaterialAsset; + + if (assetToEdit.GetId().IsValid()) { - if (EditorMaterialComponentInspector::OpenInspectorDialog(m_materialAsset.GetId(), m_matModUvOverrides, m_modelUvNames, applyMatModUvOverrideChangedCallback)) + if (EditorMaterialComponentInspector::OpenInspectorDialog(assetToEdit.GetId(), m_matModUvOverrides, m_modelUvNames, applyMatModUvOverrideChangedCallback)) { OnMaterialChanged(); } @@ -268,11 +272,13 @@ namespace AZ action = menu.addAction("Edit Source Material...", [this]() { OpenMaterialEditor(); }); action->setEnabled(HasSourceData()); + bool hasAnyMaterial = m_defaultMaterialAsset.GetId().IsValid() || m_materialAsset.GetId().IsValid(); + action = menu.addAction("Edit Material Instance...", [this]() { OpenMaterialInspector(); }); - action->setEnabled(m_materialAsset.GetId().IsValid()); + action->setEnabled(hasAnyMaterial); action = menu.addAction("Edit Material Instance UV Map...", [this]() { OpenUvNameMapInspector(); }); - action->setEnabled(m_materialAsset.GetId().IsValid()); + action->setEnabled(hasAnyMaterial); menu.addSeparator();