// Postprocess on all assets once an automatic import has completed static void PostprocessAllAssets(string[] importedAssets, string[] addedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromPathAssets, bool didDomainReload) { object[] args = { importedAssets, deletedAssets, movedAssets, movedFromPathAssets }; object[] argsWithDidDomainReload = { importedAssets, deletedAssets, movedAssets, movedFromPathAssets, didDomainReload }; var containsNoAssets = importedAssets.Length == 0 && addedAssets.Length == 0 && deletedAssets.Length == 0 && movedAssets.Length == 0 && movedFromPathAssets.Length == 0; foreach (OnPostprocessAllAssetsCallbackCollection.MethodInfoCallback assetPostProcessor in s_OnPostprocessAllAssetsCallbacks.sortedCallbacks) { if (assetPostProcessor.MethodDomainReload) { using (new EditorPerformanceMarker($"{assetPostProcessor.classType.Name}.OnPostprocessAllAssets", assetPostProcessor.classType).Auto()) InvokeMethod(assetPostProcessor.Method, argsWithDidDomainReload); } else { if (containsNoAssets) { continue; } using (new EditorPerformanceMarker($"{assetPostProcessor.classType.Name}.OnPostprocessAllAssets", assetPostProcessor.classType).Auto()) InvokeMethod(assetPostProcessor.Method, args); } } using (new EditorPerformanceMarker("SyncVS.PostprocessSyncProject").Auto()) CodeEditorProjectSync.PostprocessSyncProject(importedAssets, addedAssets, deletedAssets, movedAssets, movedFromPathAssets); }
// Postprocess on all assets once an automatic import has completed static void PostprocessAllAssets(string[] importedAssets, string[] addedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromPathAssets) { object[] args = { importedAssets, deletedAssets, movedAssets, movedFromPathAssets }; foreach (var assetPostprocessorClass in GetCachedAssetPostprocessorClasses()) { MethodInfo method = assetPostprocessorClass.GetMethod("OnPostprocessAllAssets", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static); if (method != null) { InvokeMethod(method, args); } } Profiler.BeginSample("SyncVS.PostprocessSyncProject"); #pragma warning disable 618 if (ScriptEditorUtility.GetScriptEditorFromPath(CodeEditor.CurrentEditorInstallation) == ScriptEditorUtility.ScriptEditor.Other || ScriptEditorUtility.GetScriptEditorFromPath(CodeEditor.CurrentEditorInstallation) == ScriptEditorUtility.ScriptEditor.SystemDefault) { CodeEditorProjectSync.PostprocessSyncProject(importedAssets, addedAssets, deletedAssets, movedAssets, movedFromPathAssets); } else { ///@TODO: we need addedAssets for SyncVS. Make this into a proper API and write tests SyncVS.PostprocessSyncProject(importedAssets, addedAssets, deletedAssets, movedAssets, movedFromPathAssets); } Profiler.EndSample(); }
// Postprocess on all assets once an automatic import has completed static void PostprocessAllAssets(string[] importedAssets, string[] addedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromPathAssets) { bool profile = Profiler.enabled; object[] args = { importedAssets, deletedAssets, movedAssets, movedFromPathAssets }; foreach (var assetPostprocessorClass in GetCachedAssetPostprocessorClasses()) { MethodInfo method = assetPostprocessorClass.GetMethod("OnPostprocessAllAssets", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static); if (method != null) { InvokeMethod(method, args); } } Profiler.BeginSample("SyncVS.PostprocessSyncProject"); ///@TODO: we need addedAssets for SyncVS. Make this into a proper API and write tests CodeEditorProjectSync.PostprocessSyncProject(importedAssets, addedAssets, deletedAssets, movedAssets, movedFromPathAssets); Profiler.EndSample(); }