Объявление
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
{
// Будет вызываться один раз для каждого вызова CreateAsset()
//и один раз для вызова 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;
}
}