From 0457d7d44c353384333b1c073305f0a71fbd660d Mon Sep 17 00:00:00 2001 From: nakano yosuke Date: Mon, 13 Apr 2020 23:07:53 +0900 Subject: [PATCH] MultipleEdit --- Assets/AsmdefHelper/MultipleEdit.meta | 8 +++ Assets/AsmdefHelper/MultipleEdit/Editor.meta | 8 +++ .../AsmdefHelper.MultipleEdit.Editor.asmref | 3 + ...mdefHelper.MultipleEdit.Editor.asmref.meta | 7 ++ .../Editor/AsmdefMultiEditWindow.cs | 70 +++++++++++++++++++ .../Editor/AsmdefMultiEditWindow.cs.meta | 11 +++ 6 files changed, 107 insertions(+) create mode 100644 Assets/AsmdefHelper/MultipleEdit.meta create mode 100644 Assets/AsmdefHelper/MultipleEdit/Editor.meta create mode 100644 Assets/AsmdefHelper/MultipleEdit/Editor/AsmdefHelper.MultipleEdit.Editor.asmref create mode 100644 Assets/AsmdefHelper/MultipleEdit/Editor/AsmdefHelper.MultipleEdit.Editor.asmref.meta create mode 100644 Assets/AsmdefHelper/MultipleEdit/Editor/AsmdefMultiEditWindow.cs create mode 100644 Assets/AsmdefHelper/MultipleEdit/Editor/AsmdefMultiEditWindow.cs.meta diff --git a/Assets/AsmdefHelper/MultipleEdit.meta b/Assets/AsmdefHelper/MultipleEdit.meta new file mode 100644 index 0000000..5f1bc56 --- /dev/null +++ b/Assets/AsmdefHelper/MultipleEdit.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a9325e20a8831bf43b94e22a406c4e67 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AsmdefHelper/MultipleEdit/Editor.meta b/Assets/AsmdefHelper/MultipleEdit/Editor.meta new file mode 100644 index 0000000..01db1b0 --- /dev/null +++ b/Assets/AsmdefHelper/MultipleEdit/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9a6f1c1bda271a541b230a51a05a677c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AsmdefHelper/MultipleEdit/Editor/AsmdefHelper.MultipleEdit.Editor.asmref b/Assets/AsmdefHelper/MultipleEdit/Editor/AsmdefHelper.MultipleEdit.Editor.asmref new file mode 100644 index 0000000..0a12953 --- /dev/null +++ b/Assets/AsmdefHelper/MultipleEdit/Editor/AsmdefHelper.MultipleEdit.Editor.asmref @@ -0,0 +1,3 @@ +{ + "reference": "GUID:211243abc45174c45b3a6c275ea126b9" +} \ No newline at end of file diff --git a/Assets/AsmdefHelper/MultipleEdit/Editor/AsmdefHelper.MultipleEdit.Editor.asmref.meta b/Assets/AsmdefHelper/MultipleEdit/Editor/AsmdefHelper.MultipleEdit.Editor.asmref.meta new file mode 100644 index 0000000..2eb5131 --- /dev/null +++ b/Assets/AsmdefHelper/MultipleEdit/Editor/AsmdefHelper.MultipleEdit.Editor.asmref.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 43a16440f46e8054e8bb12c38f573975 +AssemblyDefinitionReferenceImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AsmdefHelper/MultipleEdit/Editor/AsmdefMultiEditWindow.cs b/Assets/AsmdefHelper/MultipleEdit/Editor/AsmdefMultiEditWindow.cs new file mode 100644 index 0000000..faaf72b --- /dev/null +++ b/Assets/AsmdefHelper/MultipleEdit/Editor/AsmdefMultiEditWindow.cs @@ -0,0 +1,70 @@ +using System.Collections.Generic; +using System.Linq; +using UnityEditor; +using UnityEditor.Experimental.AssetImporters; +using UnityEditorInternal; +using UnityEngine; + +namespace AsmdefMultiEdit.Editor +{ + public class AsmdefMultiEditWindow : EditorWindow + { + static IList windows = new List(); + + [MenuItem("Window/Asmdef Multiple Edit/1.Search asmdef in project")] + public static void Search() + { + var projectBrowser = GetWindow(); + projectBrowser.SetSearch("t:AssemblyDefinitionAsset"); + } + + [MenuItem("Window/Asmdef Multiple Edit/2.Open selected asmdef inspector view")] + public static void Open() + { + var asmdefs = Selection.GetFiltered(typeof(AssemblyDefinitionAsset), SelectionMode.TopLevel); + if (!asmdefs.Any()) + { + Debug.Log("no AssemblyDefinitionAsset"); + return; + } + + CloseWindows(); + foreach (var adf in asmdefs) + { + Selection.objects = new[] { adf }; + var w = CreateWindow(); + // LockすることでInspectorWindowの表示を固定する + w.isLocked = true; + windows.Add(w); + } + } + + [MenuItem("Window/Asmdef Multiple Edit/3.All apply and close")] + public static void Apply() + { + foreach (var w in windows) + { + foreach (var editor in w.tracker.activeEditors) + { + var assetImporterEditor = editor as AssetImporterEditor; + + if (assetImporterEditor != null && assetImporterEditor.HasModified()) + { + assetImporterEditor.ApplyAndImport(); + } + } + w.Close(); + } + windows.Clear(); + } + + static void CloseWindows() + { + foreach (var w in windows) + { + w.Close(); + } + windows.Clear(); + } + } +} diff --git a/Assets/AsmdefHelper/MultipleEdit/Editor/AsmdefMultiEditWindow.cs.meta b/Assets/AsmdefHelper/MultipleEdit/Editor/AsmdefMultiEditWindow.cs.meta new file mode 100644 index 0000000..2037852 --- /dev/null +++ b/Assets/AsmdefHelper/MultipleEdit/Editor/AsmdefMultiEditWindow.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 06fa8aa0de8ea5442b6454c3a8edfdc6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: