Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


SaveAssets()

Writes all unsaved asset changes to disk.
Read time 1 minuteLast updated 6 days ago

Definition

  • Type: Method
  • Namespace: UnityEditor
  • Assembly: UnityEditor.CoreModule
public static void SaveAssets()

Remarks

Identical to EditorApplication.SaveAssets except not permitted to be called during serialization.
When calling this function, AssetModificationProcessor.OnWillSaveAssets(string[]) will be invoked, allowing you to override which files are saved to disk.
EditorApplication.SaveAssets will be deprecated in a future release. Please use AssetDatabase.SaveAssets to maintain future compatibility.

Examples

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, "AssetsArtifacts" + 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; }}