Fix MaterialBase::GetParameterValue when parameter is not overridden

#3965
This commit is contained in:
Wojtek Figat
2026-03-25 12:44:42 +01:00
parent 9850761b5c
commit 7c5b1942e6
2 changed files with 4 additions and 2 deletions

View File

@@ -19,10 +19,10 @@ Variant MaterialBase::GetParameterValue(const StringView& name)
if (!IsLoaded() && WaitForLoaded())
return Variant::Null;
const auto param = Params.Get(name);
if (IsMaterialInstance() && param && !param->IsOverride() && ((MaterialInstance*)this)->GetBaseMaterial())
return ((MaterialInstance*)this)->GetBaseMaterial()->GetParameterValue(name);
if (param)
{
return param->GetValue();
}
LOG(Warning, "Missing material parameter '{0}' in material {1}", String(name), ToString());
return Variant::Null;
}

View File

@@ -57,6 +57,8 @@ public:
/// <summary>
/// Gets the material parameter value.
/// </summary>
/// <remarks>For material instances that inherit a base material, returned value might come from base material if the current one doesn't override it.</remarks>
/// <param name="name">The parameter name.</param>
/// <returns>The parameter value.</returns>
API_FUNCTION() Variant GetParameterValue(const StringView& name);