Inheritance: AssetImporterInspector
        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));
                }
            }
        }
Example #2
0
        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));
                }
            }
        }
Example #4
0
 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;
            }
        }