// #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();
        }
Esempio n. 3
0
        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();
            }
        }