public override void OnInspectorGUI() { MonoImporter monoImporter = this.target as MonoImporter; MonoScript script = monoImporter.GetScript(); if (script) { Type @class = script.GetClass(); if (!MonoScriptImporterInspector.IsTypeCompatible(@class)) { EditorGUILayout.HelpBox("No MonoBehaviour scripts in the file, or their names do not match the file name.", MessageType.Info); } Vector2 iconSize = EditorGUIUtility.GetIconSize(); EditorGUIUtility.SetIconSize(new Vector2(16f, 16f)); List <string> list = new List <string>(); List <UnityEngine.Object> list2 = new List <UnityEngine.Object>(); bool flag = false; this.ShowFieldInfo(@class, monoImporter, list, list2, ref flag); EditorGUIUtility.SetIconSize(iconSize); if (flag) { monoImporter.SetDefaultReferences(list.ToArray(), list2.ToArray()); AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(monoImporter)); } } }
public override void OnInspectorGUI() { MonoImporter target = this.target as MonoImporter; MonoScript script = target.GetScript(); if (!(bool)((UnityEngine.Object)script)) { return; } System.Type type = script.GetClass(); if (!MonoScriptImporterInspector.IsTypeCompatible(type)) { EditorGUILayout.HelpBox("No MonoBehaviour scripts in the file, or their names do not match the file name.", MessageType.Info); } Vector2 iconSize = EditorGUIUtility.GetIconSize(); EditorGUIUtility.SetIconSize(new Vector2(16f, 16f)); List <string> names = new List <string>(); List <UnityEngine.Object> objects = new List <UnityEngine.Object>(); bool didModify = false; this.ShowFieldInfo(type, target, names, objects, ref didModify); EditorGUIUtility.SetIconSize(iconSize); if (!didModify) { return; } target.SetDefaultReferences(names.ToArray(), objects.ToArray()); AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath((UnityEngine.Object)target)); }
public override void OnInspectorGUI() { MonoImporter monoImporter = base.target as MonoImporter; MonoScript script = monoImporter.GetScript(); if (script) { Type @class = script.GetClass(); if (!InternalEditorUtility.IsInEditorFolder(monoImporter.assetPath)) { if (!MonoScriptImporterInspector.IsTypeCompatible(@class)) { EditorGUILayout.HelpBox("No MonoBehaviour scripts in the file, or their names do not match the file name.", MessageType.Info); } } List <string> list = new List <string>(); List <UnityEngine.Object> list2 = new List <UnityEngine.Object>(); bool flag = false; using (new EditorGUIUtility.IconSizeScope(new Vector2(16f, 16f))) { this.ShowFieldInfo(@class, monoImporter, list, list2, ref flag); } if (list2.Count != 0) { EditorGUILayout.HelpBox("Default references will only be applied in edit mode.", MessageType.Info); } if (flag) { monoImporter.SetDefaultReferences(list.ToArray(), list2.ToArray()); AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(monoImporter)); } } }
private void ShowFieldInfo(System.Type type, MonoImporter importer, List <string> names, List <UnityEngine.Object> objects, ref bool didModify) { if (!MonoScriptImporterInspector.IsTypeCompatible(type)) { return; } this.ShowFieldInfo(type.BaseType, importer, names, objects, ref didModify); foreach (System.Reflection.FieldInfo field in type.GetFields(BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)) { if (!field.IsPublic) { object[] customAttributes = field.GetCustomAttributes(typeof(SerializeField), true); if (customAttributes == null || customAttributes.Length == 0) { continue; } } if (field.FieldType.IsSubclassOf(typeof(UnityEngine.Object)) || field.FieldType == typeof(UnityEngine.Object)) { UnityEngine.Object defaultReference = importer.GetDefaultReference(field.Name); UnityEngine.Object @object = EditorGUILayout.ObjectField(ObjectNames.NicifyVariableName(field.Name), defaultReference, field.FieldType, false, new GUILayoutOption[0]); names.Add(field.Name); objects.Add(@object); if (defaultReference != @object) { didModify = true; } } } }
private void ShowFieldInfo(Type type, MonoImporter importer, List <string> names, List <UnityEngine.Object> objects, ref bool didModify) { if (!MonoScriptImporterInspector.IsTypeCompatible(type)) { return; } this.ShowFieldInfo(type.BaseType, importer, names, objects, ref didModify); FieldInfo[] fields = type.GetFields(BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); FieldInfo[] array = fields; int i = 0; while (i < array.Length) { FieldInfo fieldInfo = array[i]; if (fieldInfo.IsPublic) { goto IL_67; } object[] customAttributes = fieldInfo.GetCustomAttributes(typeof(SerializeField), true); if (customAttributes != null && customAttributes.Length != 0) { goto IL_67; } IL_EC: i++; continue; IL_67: if (!fieldInfo.FieldType.IsSubclassOf(typeof(UnityEngine.Object)) && fieldInfo.FieldType != typeof(UnityEngine.Object)) { goto IL_EC; } UnityEngine.Object defaultReference = importer.GetDefaultReference(fieldInfo.Name); UnityEngine.Object @object = EditorGUILayout.ObjectField(ObjectNames.NicifyVariableName(fieldInfo.Name), defaultReference, fieldInfo.FieldType, false, new GUILayoutOption[0]); names.Add(fieldInfo.Name); objects.Add(@object); if (defaultReference != @object) { didModify = true; goto IL_EC; } goto IL_EC; } }