Warn if wrong type while setting material parameter.
This commit is contained in:
@@ -25,13 +25,20 @@ Variant MaterialBase::GetParameterValue(const StringView& name)
|
|||||||
return Variant::Null;
|
return Variant::Null;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MaterialBase::SetParameterValue(const StringView& name, const Variant& value, bool warnIfMissing)
|
void MaterialBase::SetParameterValue(const StringView& name, const Variant& value, bool warnIfMissing, bool warnIfWrongType)
|
||||||
{
|
{
|
||||||
const auto param = Params.Get(name);
|
const auto param = Params.Get(name);
|
||||||
if (param)
|
if (param)
|
||||||
{
|
{
|
||||||
param->SetValue(value);
|
if (param->GetValue().Type == value.Type)
|
||||||
param->SetIsOverride(true);
|
{
|
||||||
|
param->SetValue(value);
|
||||||
|
param->SetIsOverride(true);
|
||||||
|
}
|
||||||
|
else if (warnIfWrongType)
|
||||||
|
{
|
||||||
|
LOG(Warning, "Material parameter '{0}' in material {1} is type '{2}' and not type '{3}'.", String(name), ToString(), param->GetValue().Type, value.Type);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (warnIfMissing)
|
else if (warnIfMissing)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -65,8 +65,9 @@ public:
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="name">The parameter name.</param>
|
/// <param name="name">The parameter name.</param>
|
||||||
/// <param name="value">The value to set.</param>
|
/// <param name="value">The value to set.</param>
|
||||||
/// <param name="warnIfMissing">True if warn if parameter is missing, otherwise will do nothing.</param>
|
/// <param name="warnIfMissing">True to warn if parameter is missing, otherwise will do nothing.</param>
|
||||||
API_FUNCTION() void SetParameterValue(const StringView& name, const Variant& value, bool warnIfMissing = true);
|
/// <param name="warnIfWrongType">True to warn if value is wrong type, otherwise will do nothing.</param>
|
||||||
|
API_FUNCTION() void SetParameterValue(const StringView& name, const Variant& value, bool warnIfMissing = true, bool warnIfWrongType = true);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates the virtual material instance of this material which allows to override any material parameters.
|
/// Creates the virtual material instance of this material which allows to override any material parameters.
|
||||||
|
|||||||
Reference in New Issue
Block a user