using UnityEditor; namespace Asset_Cleaner { class ProcessAllAssets : AssetPostprocessor { static void OnPostprocessAllAssets (string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) { if (!AufCtx.InitStarted) return; if (!Globals.Value.Initialized) return; var store = Globals.Value; if (store == null) { return; } var length = movedAssets.Length; for (var i = 0; i < length; i++) store.Replace (movedFromAssetPaths[i], movedAssets[i]); foreach (var path in deletedAssets) store.Remove (path); foreach (var path in importedAssets) store.RebuildFor (path, true); var config = Globals.Value; if (config.UpdateUnusedAssetsOnDemand) { config.PendingUpdateUnusedAssets = true; } else { ForceUpdateUnusedAssets (); } } public static void ForceUpdateUnusedAssets () { Globals.Value.PendingUpdateUnusedAssets = false; var store = Globals.Value; store.UpdateUnusedAssets (); } } }