Fix MaterialBase::GetParameterValue when parameter is not overridden
#3965
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user