对某个文件夹下的Asset进行批处理,设置这些资源的部分属性,这些属性需要通过代码进行设置
目前版本可以批处理Texture和Audio类型的资产 都是通过设置Setting类对资产进行设置
using UnityEditor;
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
public class AssetImporterTool : Texture{
//texture
public delegate void texSetImporterHandler(TextureImporterSettings settings);
[MenuItem("Tools/Assets(Texture) Set Batch",false,300)]
static private void RunTextureAssetsSetBatch()
{
string selectFilePath = AssetDatabase.GetAssetPath(Selection.activeObject);
IEnumerator enumerator = TextureAssetsSetBatch((defTexImporterSettings)=> {
defTexImporterSettings.textureType = TextureImporterType.Sprite;
defTexImporterSettings.wrapMode = TextureWrapMode.Clamp;
defTexImporterSettings.mipmapEnabled = false;
}, selectFilePath).GetEnumerator();
EditorApplication.update = delegate ()
{
if (!enumerator.MoveNext())
{
EditorUtility.ClearProgressBar();
EditorApplication.update = null;
}
};
}
public static IEnumerable TextureAssetsSetBatch(texSetImporterHandler setImporterHandler, string selectFilePath)
{
string[] texPaths = AssetDatabase.FindAssets("t:Texture", new string[] { selectFilePath })
.Select(guid => AssetDatabase.GUIDToAssetPath(guid)).ToArray();
for (int i = 0; i < texPaths.Length; i++)
{
if (EditorUtility.DisplayCancelableProgressBar("Setting... ...", texPaths[i], (float)i / (float)texPaths.Length))
{
yield break;
}
TextureImporter textureImporter = (TextureImporter)TextureImporter.GetAtPath(texPaths[i]);
TextureImporterSettings texImporterSettings = new TextureImporterSettings();
textureImporter.ReadTextureSettings(texImporterSettings);
setImporterHandler(texImporterSettings);
textureImporter.SetTextureSettings(texImporterSettings);
textureImporter.SaveAndReimport();
yield return null;
}
}
//Model
//Anim
//Audio