static void ShowWindow() { ImportHistoryWindow window = CreateInstance <ImportHistoryWindow>(); window.titleContent = new GUIContent("Import History"); window.Show(); }
private static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) { ImportHistoryWindow.TryRead(); //Ignores massive operations const int MAX_COUNT = 100; int count = deletedAssets.Length + movedAssets.Length + importedAssets.Length; if (count > MAX_COUNT) { ignores.Clear(); return; } for (int ii = 0; ii < deletedAssets.Length; ii++) { ImportHistoryWindow.Remove(deletedAssets[ii]); } for (int ii = 0; ii < movedFromAssetPaths.Length; ii++) { ImportHistoryWindow.Remove(movedFromAssetPaths[ii]); } void Add(string path) { if (!ignores.Remove(path)) { ImportHistoryWindow.Add(path, false); } } for (int ii = 0; ii < movedAssets.Length; ii++) { var moved = movedAssets[ii]; bool imported = false; //Renaming an asset in Unity will call both movedAssets and importedAssets, but that creates a problem for the ignores for (int iii = 0; iii < importedAssets.Length; iii++) { if (importedAssets[iii] == moved) { imported = true; break; } } if (!imported) { Add(moved); } } for (int ii = 0; ii < importedAssets.Length; ii++) { Add(importedAssets[ii]); } ImportHistoryWindow.TryWrite(); }