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.
#pragma strict // This example shows a custom inspector for an // object "MyPlayerEditor", which has two variables, speed and ammo. @CustomEditor(MyPlayer) class MyPlayerEditor extends Editor { function OnInspectorGUI() { var targetPlayer = target as MyPlayer; EditorGUILayout.LabelField ("Some help", "Some other text");
GUI.changed = false; targetPlayer.speed = EditorGUILayout.Slider ("Speed", targetPlayer.speed, 0, 100); if (GUI.changed) EditorUtility.SetDirty(targetPlayer); } }