Skip to content

Commit cdbc2da

Browse files
committed
Restore values from json on create new managed reference
1 parent 5d43ced commit cdbc2da

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

Assets/MackySoft/MackySoft.SerializeReferenceExtensions/Editor/ManagedReferenceUtility.cs

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,27 @@
22
using System;
33
using System.Reflection;
44
using UnityEditor;
5+
using UnityEngine;
56

67
namespace MackySoft.SerializeReferenceExtensions.Editor {
78
public static class ManagedReferenceUtility {
89

910
public static object SetManagedReference (this SerializedProperty property,Type type) {
10-
object obj = (type != null) ? Activator.CreateInstance(type) : null;
11-
property.managedReferenceValue = obj;
12-
return obj;
11+
object result;
12+
if (property.managedReferenceValue != null)
13+
{
14+
// Restore an previous values from json.
15+
string json = JsonUtility.ToJson(property.managedReferenceValue);
16+
result = JsonUtility.FromJson(json, type);
17+
}
18+
else
19+
{
20+
result = (type != null) ? Activator.CreateInstance(type) : null;
21+
}
22+
23+
property.managedReferenceValue = result;
24+
return result;
25+
1326
}
1427

1528
public static Type GetType (string typeName) {

0 commit comments

Comments
 (0)