Inheritance: AssetImporter
示例#1
0
        protected override bool ApplyRevertGUIButtons()
        {
            EditorGUI.BeginDisabledGroup(!this.HasModified());
            base.RevertButton();
            bool result = base.ApplyButton("Apply Prefab");

            EditorGUI.EndDisabledGroup();
            bool       upgradeMaterials = this.upgradeMaterials;
            GUIContent content          = (!this.HasModified() && !upgradeMaterials) ? SpeedTreeImporterInspector.Styles.Regenerate : SpeedTreeImporterInspector.Styles.ApplyAndGenerate;

            if (GUILayout.Button(content, new GUILayoutOption[0]))
            {
                bool flag = this.HasModified();
                if (flag)
                {
                    this.Apply();
                }
                if (upgradeMaterials)
                {
                    SpeedTreeImporter[] importers = this.importers;
                    for (int i = 0; i < importers.Length; i++)
                    {
                        SpeedTreeImporter speedTreeImporter = importers[i];
                        speedTreeImporter.SetMaterialVersionToCurrent();
                    }
                }
                this.GenerateMaterials();
                if (flag || upgradeMaterials)
                {
                    base.ApplyAndImport();
                    result = true;
                }
            }
            return(result);
        }
        private void GenerateMaterials()
        {
            string[] array = (
                from im in this.importers
                select im.materialFolderPath).ToArray <string>();
            string[] source = AssetDatabase.FindAssets("t:Material", array);
            string[] array2 = (
                from guid in source
                select AssetDatabase.GUIDToAssetPath(guid)).ToArray <string>();
            bool flag = true;

            if (array2.Length > 0)
            {
                flag = Provider.PromptAndCheckoutIfNeeded(array2, string.Format("Materials will be checked out in:\n{0}", string.Join("\n", array)));
            }
            if (flag)
            {
                SpeedTreeImporter[] importers = this.importers;
                for (int i = 0; i < importers.Length; i++)
                {
                    SpeedTreeImporter speedTreeImporter = importers[i];
                    speedTreeImporter.GenerateMaterials();
                }
            }
        }