static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) { if (AssetPostprocessorUtility.ExitImportLoop(importedAssets, ASSET_PATH, ref s_importLoopCounter)) { return; } StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append("importedAssets {"); foreach (var item in importedAssets) { stringBuilder.Append(item); stringBuilder.Append(", "); } stringBuilder.Append("} "); stringBuilder.Append("deletedAssets {"); foreach (var item in deletedAssets) { stringBuilder.Append(item); stringBuilder.Append(", "); } stringBuilder.Append("} "); stringBuilder.Append("movedAssets {"); foreach (var item in movedAssets) { stringBuilder.Append(item); stringBuilder.Append(", "); } stringBuilder.Append("} "); stringBuilder.Append("movedFromAssetPaths {"); foreach (var item in movedFromAssetPaths) { stringBuilder.Append(item); stringBuilder.Append(", "); } stringBuilder.Append("} "); if (importedAssets.Contains("ProjectSettings/EditorBuildSettings.asset")) { UpdateMetaData(LogMode.ChangesOnly); } }
static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) { if (AssetPostprocessorUtility.ExitImportLoop(importedAssets, ASSET_PATH, ref s_importLoopCounter)) { return; } SimAssetBank bank = null; bool saveAsset = false; importedAssets.Where((assetPath) => assetPath.EndsWith(".prefab")) .Select((assetPath) => AssetDatabase.LoadAssetAtPath <GameObject>(assetPath)) .Where((gameObject) => gameObject.GetComponent <SimAsset>() != null) .Select((gameObject) => gameObject.GetComponent <SimAsset>()) .ToList() .ForEach((SimAsset prefab) => { if (bank == null) { bank = AssetDatabaseX.LoadOrCreateScriptableObjectAsset <SimAssetBank>(ASSET_PATH); } saveAsset |= ValidateSimAssetIdForPrefab(prefab); if (!bank.EditorSimAssets.Contains(prefab)) { saveAsset = true; bank.EditorSimAssets.Add(prefab); DebugEditor.LogAssetIntegrity($"Added {prefab.gameObject.name} to {nameof(SimAssetBank)}."); } }); if (saveAsset) { EditorUtility.SetDirty(bank); AssetDatabase.SaveAssets(); } }
public void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) { if (AssetPostprocessorUtility.ExitImportLoop(importedAssets, _bankAssetPath, ref _importLoopCounter)) { return; } List <TStoredObject> modifiedItems = new List <TStoredObject>(); importedAssets.Where((assetPath) => assetPath.EndsWith(_assetTypeFileExtension)) .Select((assetPath) => AssetDatabase.LoadAssetAtPath <TAsset>(assetPath)) .ToList().ForEach((assetObject) => { if (_evaluateAssetDelegate(assetObject, out TStoredObject item)) { modifiedItems.Add(item); } }); if (modifiedItems.Count > 0) { UpdateBank(modifiedItems); } }