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.

当资源已改变并需要保存到磁盘,Unity内部使用dirty标识来查找。

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.

例如,如果修改一个prefab的MonoBehaviourScriptableObject变量,必须告诉Unity该值已经改变。每当一个属性发生变化,Unity内置组件在内部调用setDirty。MonoBehaviourScriptableObject不自动做这个,因此如果你想值被保存,必须调用SetDirty。

// C# Example
// Set Wrapmode of each imported texture to Clamp
//设置每个导入纹理的循环模式到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);
		}
	}
}
最后修改:2011年7月15日 Friday 14:22

本脚本参考基于Unity 3.4.1f5

英文部分版权属©Unity公司所有,中文部分© Unity圣典 版权所有,未经许可,严禁转载 。