EditorUtility.SetDirty Manual     Reference     Scripting  
Scripting > Editor Classes > EditorUtility
EditorUtility.SetDirty

static function SetDirty (target : Object) : void

Description

Marks target object as dirty.

Unity internally uses the dirty flag to find out when assets have changed and need to be saved to disk.

E.g. if you modify a prefab's MonoBehaviour or ScriptableObject variables, you must tell Unity that the value has changed. Unity builtin components internally call SetDirty whenever a property changes. MonoBehaviour or ScriptableObject don't do this automatically so if you want your value to be saved you need to call SetDirty.

// C# Example
// Set Wrapmode of each imported texture to Clamp

using UnityEngine;
using UnityEditor;
using System.Collections;

public class TexturePreprocessor : AssetPostprocessor {
void OnPostProcessTexture() {
TextureImporter textureImporter = assetImporter as TextureImporter;
textureImporter.mipmapEnabled = false;

string path = textureImporter.assetPath;

Object asset = AssetDatabase.LoadAssetAtPath(path, typeof(Texture2D));
Texture2D texture = asset as Texture2D;

if (texture != null) {
Debug.Log("Texture path: " + path);
texture.wrapMode = TextureWrapMode.Clamp;
EditorUtility.SetDirty(asset);
} else {
Debug.Log("error " + path);
}
}
}