public static void UpdateLinkedAssets(Preset preset) { var autoPresetConfigList = AssetDatabaseTools.GetAllAutoPresetConfigs(); const string UPDATE_ASSETS_TITLE = "Updating AutoPresetConfigs"; EditorUtility.DisplayProgressBar(UPDATE_ASSETS_TITLE, String.Empty, 0f); for (var i = 0; i < autoPresetConfigList.Count; i++) { var progress = Mathf.Clamp01((float)i / autoPresetConfigList.Count); EditorUtility.DisplayProgressBar(UPDATE_ASSETS_TITLE, String.Empty, progress); var autoPresetConfig = autoPresetConfigList[i]; if (autoPresetConfig.Preset != preset) { continue; } var msg = string.Format("Importing assets for [{0}]", autoPresetConfig.name); EditorUtility.DisplayProgressBar(UPDATE_ASSETS_TITLE, msg, progress); var assetPath = AssetDatabase.GetAssetPath(autoPresetConfig); var parentPath = AssetDatabaseTools.GetAssetParentFolderPath(assetPath); AssetDatabaseTools.ReimportAllAssets(parentPath, autoPresetConfig); } EditorUtility.ClearProgressBar(); }
/// <summary> /// Returns true if an <see cref="AutoPresetConfig"/> instance was found in the same folder as the /// asset that applies to it, otherwise false. If true, <paramref name="autoPreset"/> will be /// initialized with that value. /// </summary> /// <param name="autoPreset"></param> /// <returns></returns> private bool TryGetPresetAsset(out AutoPresetConfig autoPreset) { autoPreset = null; var parentFolder = AssetDatabaseTools.GetAssetParentFolderPath(assetPath); var autoPresetConfigs = AssetDatabaseTools.GetAllAutoPresetConfigs(new[] { parentFolder }); foreach (var autoPresetConfig in autoPresetConfigs) { if (!autoPresetConfig.CanBeAppliedTo(assetImporter)) { continue; } autoPreset = autoPresetConfig; return(true); } return(false); }