Fix cloning value utility for object references

#2399
This commit is contained in:
Wojtek Figat
2024-04-17 16:17:39 +02:00
parent 9f983cff49
commit 16554fe742

View File

@@ -210,12 +210,17 @@ namespace FlaxEditor.Utilities
/// <returns>The duplicated value.</returns>
internal static object CloneValue(object value)
{
// For object references just clone it
if (value is FlaxEngine.Object)
return value;
// For objects (eg. arrays) we need to clone them to prevent editing default/reference value within editor
if (value != null && (!value.GetType().IsValueType || !value.GetType().IsClass))
{
var json = JsonSerializer.Serialize(value);
value = JsonSerializer.Deserialize(json, value.GetType());
}
return value;
}