Skip to content

Commit b6b1363

Browse files
committed
fix: added custom getter for accessing managed reference value on below 2021
1 parent 263f43b commit b6b1363

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

Editor/SerializableInterfacePropertyDrawer.cs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,20 @@ internal sealed class SerializableInterfacePropertyDrawer : PropertyDrawer
2222

2323
private ReferenceMode ReferenceMode => (ReferenceMode)ReferenceModeProperty.enumValueIndex;
2424

25+
private object RawReferenceValue
26+
{
27+
get
28+
{
29+
#if UNITY_2021_1_OR_NEWER
30+
return RawReferenceProperty.managedReferenceValue;
31+
#else
32+
ISerializableInterface instance =
33+
(ISerializableInterface)fieldInfo.GetValue(serializedProperty.serializedObject.targetObject);
34+
return instance.GetRawReference();
35+
#endif
36+
}
37+
}
38+
2539
/// <inheritdoc />
2640
public override bool CanCacheInspectorGUI(SerializedProperty property)
2741
{
@@ -113,13 +127,13 @@ Type genericArgument
113127

114128
EditorGUI.PropertyField(objectDrawerRect,
115129
RawReferenceProperty,
116-
new GUIContent(RawReferenceProperty.managedReferenceValue.GetType().Name),
130+
new GUIContent(RawReferenceValue.GetType().Name),
117131
true);
118132
}
119133

120134
private void DrawRawReference(Rect position)
121135
{
122-
Type type = RawReferenceProperty.managedReferenceValue.GetType();
136+
Type type = RawReferenceValue.GetType();
123137
string typeName = type.Name;
124138
IEnumerable<MonoScript> scripts = AssetDatabase.FindAssets($"t:Script {typeName}")
125139
.Select(AssetDatabase.GUIDToAssetPath)

0 commit comments

Comments
 (0)