diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporterEditor.cs b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporterEditor.cs index ef29141813..f08dce0128 100644 --- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporterEditor.cs +++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporterEditor.cs @@ -16,7 +16,6 @@ namespace UniGLTF [CustomEditor(typeof(GlbScriptedImporter))] public class GlbScriptedImporterEditor : RemapScriptedImporterEditorBase { - GlbScriptedImporter m_importer; GltfData m_data; RemapEditorMaterial m_materialEditor; @@ -57,7 +56,7 @@ public override void OnInspectorGUI() case Tabs.Animation: m_animationEditor.OnGUI(m_importer, m_data); - RevertApplyRemapGUI(m_importer); + ApplyRevertGUI(); break; case Tabs.Materials: @@ -65,7 +64,7 @@ public override void OnInspectorGUI() new GltfTextureDescriptorGenerator(m_data), assetPath => $"{Path.GetFileNameWithoutExtension(assetPath)}.Textures", assetPath => $"{Path.GetFileNameWithoutExtension(assetPath)}.Materials"); - RevertApplyRemapGUI(m_importer); + ApplyRevertGUI(); break; } } diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterEditor.cs b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterEditor.cs index a125bbc74f..6406d5677c 100644 --- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterEditor.cs +++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterEditor.cs @@ -2,8 +2,6 @@ using UnityEngine; using System.IO; using System.Linq; -using System.Collections.Generic; -using VRMShaders; #if UNITY_2020_2_OR_NEWER using UnityEditor.AssetImporters; #else @@ -16,7 +14,6 @@ namespace UniGLTF [CustomEditor(typeof(GltfScriptedImporter))] public class GltfScriptedImporterEditor : RemapScriptedImporterEditorBase { - GltfScriptedImporter m_importer; GltfData m_data; RemapEditorMaterial m_materialEditor; @@ -57,7 +54,7 @@ public override void OnInspectorGUI() case Tabs.Animation: m_animationEditor.OnGUI(m_importer, m_data); - RevertApplyRemapGUI(m_importer); + ApplyRevertGUI(); break; case Tabs.Materials: @@ -65,7 +62,7 @@ public override void OnInspectorGUI() new GltfTextureDescriptorGenerator(m_data), assetPath => $"{Path.GetFileNameWithoutExtension(assetPath)}.Textures", assetPath => $"{Path.GetFileNameWithoutExtension(assetPath)}.Materials"); - RevertApplyRemapGUI(m_importer); + ApplyRevertGUI(); break; } } diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/RemapScriptedImporterEditorBase.cs b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/RemapScriptedImporterEditorBase.cs index bb879e8639..ee571362af 100644 --- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/RemapScriptedImporterEditorBase.cs +++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/RemapScriptedImporterEditorBase.cs @@ -7,8 +7,15 @@ namespace UniGLTF { + /// + /// https://github.com/Unity-Technologies/UnityCsReference/blob/2019.4/Modules/AssetPipelineEditor/ImportSettings/AssetImporterEditor.cs + /// + /// の作法に合わせる + /// public abstract class RemapScriptedImporterEditorBase : ScriptedImporterEditor { + protected ScriptedImporter m_importer; + /// /// Apply されていない変更を保持する /// @@ -33,45 +40,46 @@ protected void SetEditorMap(Dictionary value) m_editMap.AddRange(value.Select(kv => new RemapEditorBase.SubAssetPair(kv.Key, kv.Value))); } - public void RevertRemap() + /// + /// Revert + /// + protected override void ResetValues() { m_editMap.Clear(); + + base.ResetValues(); } - public void ApplyRemap(ScriptedImporter importer) + public override bool HasModified() { - foreach (var kv in m_editMap) + if (m_editMap.Any()) { - if (kv.Object != null) - { - importer.AddRemap(kv.ID, kv.Object); - } - else - { - importer.RemoveRemap(kv.ID); - } + return true; } - m_editMap.Clear(); - AssetDatabase.WriteImportSettingsIfDirty(importer.assetPath); - AssetDatabase.ImportAsset(importer.assetPath, ImportAssetOptions.ForceUpdate); + return base.HasModified(); } - public void RevertApplyRemapGUI(ScriptedImporter importer) + /// + /// Apply + /// + protected override void Apply() { - GUILayout.BeginHorizontal(); - GUILayout.FlexibleSpace(); - using (new EditorGUI.DisabledScope(m_editMap.Count == 0)) + foreach (var kv in m_editMap) { - if (GUILayout.Button("Revert")) + if (kv.Object != null) { - RevertRemap(); + m_importer.AddRemap(kv.ID, kv.Object); } - if (GUILayout.Button("Apply")) + else { - ApplyRemap(importer); + m_importer.RemoveRemap(kv.ID); } } - GUILayout.EndHorizontal(); + m_editMap.Clear(); + AssetDatabase.WriteImportSettingsIfDirty(m_importer.assetPath); + AssetDatabase.ImportAsset(m_importer.assetPath, ImportAssetOptions.ForceUpdate); + + base.Apply(); } } } diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ZipArchivedGltfScriptedImporterEditor.cs b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ZipArchivedGltfScriptedImporterEditor.cs index 19070ba77f..542d095069 100644 --- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ZipArchivedGltfScriptedImporterEditor.cs +++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ZipArchivedGltfScriptedImporterEditor.cs @@ -14,7 +14,6 @@ namespace UniGLTF [CustomEditor(typeof(ZipArchivedGltfScriptedImporter))] public class ZipArchivedGltfScriptedImporterEditor : RemapScriptedImporterEditorBase { - ZipArchivedGltfScriptedImporter m_importer; GltfData m_data; RemapEditorMaterial m_materialEditor; @@ -55,7 +54,7 @@ public override void OnInspectorGUI() case Tabs.Animation: m_animationEditor.OnGUI(m_importer, m_data); - RevertApplyRemapGUI(m_importer); + ApplyRevertGUI(); break; case Tabs.Materials: @@ -63,7 +62,7 @@ public override void OnInspectorGUI() new GltfTextureDescriptorGenerator(m_data), assetPath => $"{Path.GetFileNameWithoutExtension(assetPath)}.Textures", assetPath => $"{Path.GetFileNameWithoutExtension(assetPath)}.Materials"); - RevertApplyRemapGUI(m_importer); + ApplyRevertGUI(); break; } } diff --git a/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporterEditorGUI.cs b/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporterEditorGUI.cs index 261d34bcc9..c0c13a1d89 100644 --- a/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporterEditorGUI.cs +++ b/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporterEditorGUI.cs @@ -18,7 +18,6 @@ namespace UniVRM10 [CustomEditor(typeof(VrmScriptedImporter))] public class VrmScriptedImporterEditorGUI : RemapScriptedImporterEditorBase { - VrmScriptedImporter m_importer; VrmLib.Model m_model; RemapEditorMaterial m_materialEditor; @@ -64,8 +63,9 @@ public override void OnEnable() { base.OnEnable(); - m_importer = target as VrmScriptedImporter; - if (!Vrm10Parser.TryParseOrMigrate(m_importer.assetPath, m_importer.MigrateToVrm1, out m_result)) + var importer = target as VrmScriptedImporter; + m_importer = importer; + if (!Vrm10Parser.TryParseOrMigrate(m_importer.assetPath, importer.MigrateToVrm1, out m_result)) { // error return; @@ -102,6 +102,7 @@ public override void OnInspectorGUI() { case Vrm10FileType.Vrm1: EditorGUILayout.HelpBox(m_result.Message, MessageType.Info); + ApplyRevertGUI(); break; case Vrm10FileType.Vrm0: @@ -111,6 +112,7 @@ public override void OnInspectorGUI() break; default: + ApplyRevertGUI(); break; } } @@ -122,7 +124,7 @@ public override void OnInspectorGUI() m_materialEditor.OnGUI(m_importer, m_result.Data, new Vrm10TextureDescriptorGenerator(m_result.Data), assetPath => $"{Path.GetFileNameWithoutExtension(assetPath)}.vrm1.Textures", assetPath => $"{Path.GetFileNameWithoutExtension(assetPath)}.vrm1.Materials"); - RevertApplyRemapGUI(m_importer); + ApplyRevertGUI(); } break; @@ -130,7 +132,7 @@ public override void OnInspectorGUI() if (m_result.Data != null && m_result.Vrm != null) { m_vrmEditor.OnGUI(m_importer, m_result.Data, m_result.Vrm); - RevertApplyRemapGUI(m_importer); + ApplyRevertGUI(); } break; } diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index ca463ed35a..ecaedcdb28 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1 +1,2 @@ -m_EditorVersion: 2018.4.27f1 +m_EditorVersion: 2019.4.29f1 +m_EditorVersionWithRevision: 2019.4.29f1 (0eeae20b1d82)