private void RemovePlugin(PluginInfo plugin) { PluginsManifest.Instance.BeginRemoval(plugin); Repaint(); PluginData data = PluginsManifest.Instance.GetPluginData(plugin); if (data == null) { return; } bool finishOnRecompile = false; foreach (string file in data.copiedFiles) { if (AssetDatabase.IsValidFolder(file)) { continue; } AssetDatabase.DeleteAsset(file); if (!finishOnRecompile && file.EndsWith(".cs")) { Compile.OnFinishedCompile += FinishUninstalling; finishOnRecompile = true; } } data.installed = false; data.version = 0; data.copiedFiles.Clear(); EditorUtility.SetDirty(PluginsManifest.Instance); DefineSymbols.Disable(plugin.GetSymbols()); AssetDatabase.Refresh(ImportAssetOptions.ForceSynchronousImport); Util.DeleteEmptyFolders(); AssetDatabase.Refresh(ImportAssetOptions.ForceSynchronousImport); plugin.OnRemoved(); Repaint(); if (!finishOnRecompile) { FinishUninstalling(true); } }