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

static function SetDirty (target : Object) : void


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;
} else {
Debug.Log("error " + path);