public void UpdateBankComplete() { TBank bank = AssetDatabaseX.LoadOrCreateAsset(_bankAssetPath, () => ScriptableObject.CreateInstance <TBank>()); var storedObjects = _getStoredObjectsFromBankDelegate(bank); storedObjects.Clear(); LoadAll(out List <(string, TAsset)> loadResult); foreach ((string guid, TAsset asset) in loadResult) { if (_evaluateAssetDelegate(asset, out TStoredObject storedObject)) { storedObjects.Add(storedObject); } } DebugEditor.LogAssetIntegrity($"{bank.name} bank updated."); EditorUtility.SetDirty(bank); AssetDatabase.SaveAssets(); }
void SetBlendMode(BlendMode blendMode) { Shader shader; string assetPath; switch (blendMode) { default: case BlendMode.Add: shader = _shaderAdd; assetPath = ASSET_PATH_ADD; break; } Material material = AssetDatabaseX.LoadOrCreateAsset(assetPath, () => { var newMat = new Material(shader); newMat.enableInstancing = true; return(newMat); }); ((SpriteLight)target).GetComponent <SpriteRenderer>().sharedMaterial = material; }
private void UpdateBank(List <TStoredObject> changedPrefabs) { TBank bank = AssetDatabaseX.LoadOrCreateAsset(_bankAssetPath, () => ScriptableObject.CreateInstance <TBank>()); var storedObjects = _getStoredObjectsFromBankDelegate(bank); bool change = false; foreach (var item in changedPrefabs) { if (!storedObjects.Contains(item)) { storedObjects.Add(item); change = true; } } if (change) { DebugEditor.LogAssetIntegrity($"{bank.name} updated."); EditorUtility.SetDirty(bank); AssetDatabase.SaveAssets(); } }