原地址:http://blog.csdn.net/asd237241291/article/details/8433548
创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 QQ群:【119706192】 本文链接地址: Unity3D 批量图片资源导入设置 复制代码 usingUnityEngine; usingSystem.Collections; usingUnityEditor; /// <summary> ///批量图片资源导入设置 ///使用说明: 选择需要批量设置的贴图, ///单击DuanMenu/Texture Import Settings, ///打开窗口后选择对应参数, ///点击Set Texture ImportSettings, ///稍等片刻,--批量设置成功。 /// </summary> public classTextureImportSetting : EditorWindow { /// <summary> ///临时存储int[] /// </summary> private int[] IntArray = new int[] { 0, 1, 2, 3, 4, 5, 6, 7}; //AnisoLevel private int AnisoLevel = 1; //Filter Mode private int FilterModeInt = 0; private string[] FilterModeString = new string[] { "Point", "Bilinear", "Trilinear"}; //Wrap Mode private int WrapModeInt = 0; private string[] WrapModeString = new string[] { "Repeat", "Clamp"}; //Texture Type private int TextureTypeInt = 0; private string[] TextureTypeString = new string[] { "Texture", "Normal Map", "GUI", "Refelection", "Cookie", "Lightmap", "Advanced"}; //Max Size private int MaxSizeInt = 5; private string[] MaxSizeString = new string[] { "32", "64", "128", "256", "512", "1024", "2048", "4096"}; //Format private int FormatInt = 0; private string[] FormatString = new string[] { "Compressed", "16 bits", "true color"}; /// <summary> ///创建、显示窗体 /// </summary> [@MenuItem("DuanMenu/Texture Import Settings")] private static voidInit() { TextureImportSetting window = (TextureImportSetting)EditorWindow.GetWindow(typeof(TextureImportSetting), true, "TextureImportSetting"); window.Show(); } /// <summary> ///显示窗体里面的内容 /// </summary> private voidOnGUI() { //AnisoLevel GUILayout.BeginHorizontal(); GUILayout.Label("Aniso Level "); AnisoLevel = EditorGUILayout.IntSlider(AnisoLevel, 0, 9); GUILayout.EndHorizontal(); //Filter Mode FilterModeInt = EditorGUILayout.IntPopup("Filter Mode", FilterModeInt, FilterModeString, IntArray); //Wrap Mode WrapModeInt = EditorGUILayout.IntPopup("Wrap Mode", WrapModeInt, WrapModeString, IntArray); //Texture Type TextureTypeInt = EditorGUILayout.IntPopup("Texture Type", TextureTypeInt, TextureTypeString, IntArray); //Max Size MaxSizeInt = EditorGUILayout.IntPopup("Max Size", MaxSizeInt, MaxSizeString, IntArray); //Format FormatInt = EditorGUILayout.IntPopup("Format", FormatInt, FormatString, IntArray); if (GUILayout.Button("Set Texture ImportSettings")) LoopSetTexture(); } /// <summary> ///获取贴图设置 /// </summary> public TextureImporter GetTextureSettings(stringpath) { TextureImporter textureImporter = AssetImporter.GetAtPath(path) asTextureImporter; //AnisoLevel textureImporter.anisoLevel =AnisoLevel; //Filter Mode switch(FilterModeInt) { case 0: textureImporter.filterMode =FilterMode.Point; break; case 1: textureImporter.filterMode =FilterMode.Bilinear; break; case 2: textureImporter.filterMode =FilterMode.Trilinear; break; } //Wrap Mode switch(WrapModeInt) { case 0: textureImporter.wrapMode =TextureWrapMode.Repeat; break; case 1: textureImporter.wrapMode =TextureWrapMode.Clamp; break; } //Texture Type switch(TextureTypeInt) { case 0: textureImporter.textureType =TextureImporterType.Image; break; case 1: textureImporter.textureType =TextureImporterType.Bump; break; case 2: textureImporter.textureType =TextureImporterType.GUI; break; case 3: textureImporter.textureType =TextureImporterType.Reflection; break; case 4: textureImporter.textureType =TextureImporterType.Cookie; break; case 5: textureImporter.textureType =TextureImporterType.Lightmap; break; case 6: textureImporter.textureType =TextureImporterType.Advanced; break; } //Max Size switch(MaxSizeInt) { case 0: textureImporter.maxTextureSize = 32; break; case 1: textureImporter.maxTextureSize = 64; break; case 2: textureImporter.maxTextureSize = 128; break; case 3: textureImporter.maxTextureSize = 256; break; case 4: textureImporter.maxTextureSize = 512; break; case 5: textureImporter.maxTextureSize = 1024; break; case 6: textureImporter.maxTextureSize = 2048; break; case 7: textureImporter.maxTextureSize = 4096; break; } //Format switch(FormatInt) { case 0: textureImporter.textureFormat =TextureImporterFormat.AutomaticCompressed; break; case 1: textureImporter.textureFormat =TextureImporterFormat.Automatic16bit; break; case 2: textureImporter.textureFormat =TextureImporterFormat.AutomaticTruecolor; break; } returntextureImporter; } /// <summary> ///循环设置选择的贴图 /// </summary> private voidLoopSetTexture() { Object[] textures =GetSelectedTextures(); Selection.objects = new Object[0]; foreach (Texture2D texture intextures) { string path =AssetDatabase.GetAssetPath(texture); TextureImporter texImporter =GetTextureSettings(path); TextureImporterSettings tis = newTextureImporterSettings(); texImporter.ReadTextureSettings(tis); texImporter.SetTextureSettings(tis); AssetDatabase.ImportAsset(path); } } /// <summary> ///获取选择的贴图 /// </summary> /// <returns></returns> privateObject[] GetSelectedTextures() { return Selection.GetFiltered(typeof(Texture2D), SelectionMode.DeepAssets); } } 复制代码