// #if ODIN_INSPECTOR // [Sirenix.OdinInspector.Button] // [Sirenix.OdinInspector.GUIColor(0.5f, 0.8f, 0.2f)] // #endif public void Resize() { if (resultAssets.Count == 0) { Search(); } AssetEditorTools.ShowProgress(TextureProgressAction(x => Resize(x))); }
public void ApplyImportSettings() { try { AssetDatabase.StartAssetEditing(); AssetEditorTools.ShowProgress(TextureProgressAction(x => Import(x))); } finally { AssetDatabase.StopAssetEditing(); } AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); }
public IEnumerable <Object> ApplyAssets( Type filterType, string sheetId, string folder, SheetSyncScheme syncScheme, ISpreadsheetData spreadsheetData, object[] keys, Object[] assets = null, int count = -1, bool createMissing = true, string keyFieldName = "") { count = count < 0 ? keys.Length : count; count = Math.Min(keys.Length, count); var keyField = string.IsNullOrEmpty(keyFieldName) ? syncScheme.keyField : syncScheme.GetFieldBySheetFieldName(keyFieldName); try { for (var i = 0; i < count; i++) { var keyValue = keys[i]; var key = keyValue.TryConvert <string>(); var targetAsset = assets?.FirstOrDefault(x => string.Equals(keyField.GetValue(x).TryConvert <string>(), key, StringComparison.OrdinalIgnoreCase)); //create asset if missing if (targetAsset == null) { //skip asset creation step if (createMissing == false) { continue; } targetAsset = filterType.CreateAsset(); targetAsset.SaveAsset($"{filterType.Name}_{i + 1}", folder, false); Debug.Log($"Create Asset [{targetAsset}] for path {folder}", targetAsset); } //show assets progression AssetEditorTools.ShowProgress(new ProgressData() { IsDone = false, Progress = i / (float)count, Content = $"{i}:{count} {targetAsset.name}", Title = "Spreadsheet Importing" }); var spreadsheetValueInfo = new SheetValueInfo() { Source = targetAsset, SheetName = sheetId, SpreadsheetData = spreadsheetData, SyncScheme = syncScheme, SyncFieldName = keyField.sheetField, SyncFieldValue = keyValue, }; ApplyData(spreadsheetValueInfo); yield return(targetAsset); } } finally { AssetEditorTools.ShowProgress(new ProgressData() { IsDone = true, }); AssetDatabase.SaveAssets(); } }