AssetDatabase.SaveAssets
Declaration
public static void SaveAssets();Описание
Запись всех несохраненных изменений ассета на диск.
Идентичен EditorApplication.SaveAssets, за исключением того, что не разрешается вызывать его во время сериализации.
При вызове этой функции, AssetModificationProcessor.OnWillSaveAssets будет вызван, что позволит вам переопределить набор файлов, сохраняемых на диск.
EditorApplication.SaveAssets будет отменено в будущем выпуске. Пожалуйста, используйте SaveAssets для поддержания будущей совместимости.
using UnityEngine; using UnityEditor; using System.Text;
public class SaveAssetsExample : MonoBehaviour { [MenuItem("APIExamples/SaveAssets")] static void AssetsToBeSaved() { Color[] colorList = new[] { Color.red, Color.green, Color.blue, Color.black, Color.gray };
for (int i = 0; i < colorList.Length; ++i) { Material material = new Material(Shader.Find("Specular")); var materialName = "material_" + i + ".mat"; AssetDatabase.CreateAsset(material, "Assets/Artifacts/" + materialName);
material.SetColor("_Color", colorList[i]); }
AssetDatabase.SaveAssets(); } }
public class OutputListOfFilesToSave : UnityEditor.AssetModificationProcessor { //Will be invoked once for each call to CreateAsset() //and once for calling AssetDatabase.SaveAssets() static string[] OnWillSaveAssets(string[] paths) { Debug.Log("OnWillSaveAssets invoked");
StringBuilder assetsToBeSaved = new StringBuilder(); assetsToBeSaved.AppendLine();
foreach (string path in paths) { assetsToBeSaved.Append(path); assetsToBeSaved.AppendLine(); }
Debug.Log("Assets to be saved:" + assetsToBeSaved.ToString());
return paths; } }