private void ShowFieldInfo(Type type, MonoImporter importer, List<string> names, List<Object> objects, ref bool didModify)
{
if (IsTypeCompatible(type))
{
this.ShowFieldInfo(type.BaseType, importer, names, objects, ref didModify);
FieldInfo[] fields = type.GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly);
foreach (FieldInfo info in fields)
{
if (!info.IsPublic)
{
object[] customAttributes = info.GetCustomAttributes(typeof(SerializeField), true);
if ((customAttributes == null) || (customAttributes.Length == 0))
{
continue;
}
}
if (info.FieldType.IsSubclassOf(typeof(Object)) || (info.FieldType == typeof(Object)))
{
Object defaultReference = importer.GetDefaultReference(info.Name);
Object item = EditorGUILayout.ObjectField(ObjectNames.NicifyVariableName(info.Name), defaultReference, info.FieldType, false, new GUILayoutOption[0]);
names.Add(info.Name);
objects.Add(item);
if (defaultReference != item)
{
didModify = true;
}
}
}
}
}
}