diff --git a/Source/Engine/Content/Assets/MaterialInstance.cpp b/Source/Engine/Content/Assets/MaterialInstance.cpp index 2c436f396..1cf795e7d 100644 --- a/Source/Engine/Content/Assets/MaterialInstance.cpp +++ b/Source/Engine/Content/Assets/MaterialInstance.cpp @@ -293,6 +293,14 @@ void MaterialInstance::SetBaseMaterial(MaterialBase* baseMaterial) } } +void MaterialInstance::ResetParameters() +{ + for (auto& param : Params) + { + param.SetIsOverride(false); + } +} + #if USE_EDITOR bool MaterialInstance::Save(const StringView& path) diff --git a/Source/Engine/Content/Assets/MaterialInstance.h b/Source/Engine/Content/Assets/MaterialInstance.h index 5a99cdb41..9b0442a54 100644 --- a/Source/Engine/Content/Assets/MaterialInstance.h +++ b/Source/Engine/Content/Assets/MaterialInstance.h @@ -28,6 +28,11 @@ public: /// The base material. API_PROPERTY() void SetBaseMaterial(MaterialBase* baseMaterial); + /// + /// Resets all parameters back to the base material (including disabling parameter overrides). + /// + API_FUNCTION() void ResetParameters(); + #if USE_EDITOR ///