private static void SetValue(SerializedProperty property, Type fieldType, Object value) { if (InterfaceReferenceDrawer.GetInterfaceType(fieldType) != null) { InterfaceReferenceDrawer.SetReferenceValue(property, value); } else { property.objectReferenceValue = value; } }
public static bool IsInterfaceReference(SerializedProperty property, Type fieldType) { if (property.propertyType == SerializedPropertyType.Generic) { if (fieldType != null) { return(InterfaceReferenceDrawer.GetInterfaceType(fieldType) != null); } } return(false); }
public static Type GetSearchType(Type fieldType, AutoPopulateAttribute autoPopulate) { Type searchType = fieldType; Type interfaceType = InterfaceReferenceDrawer.GetInterfaceType(searchType); if (interfaceType != null) { searchType = interfaceType; } if (autoPopulate.TypeOverride != null) { searchType = autoPopulate.TypeOverride; } return(searchType); }