|
@@ -0,0 +1,106 @@
|
|
|
+
|
|
|
+using dnlib.DotNet;
|
|
|
+using System.IO;
|
|
|
+using UnityEditor;
|
|
|
+using UnityEngine;
|
|
|
+
|
|
|
+namespace GFGEditor
|
|
|
+{
|
|
|
+
|
|
|
+ public class TextureAutoSet : EditorWindow
|
|
|
+ {
|
|
|
+
|
|
|
+ [MenuItem("Assets/*****设置文件夹以及子文件夹下面的图片压缩格式为ASTC", priority = 0)]
|
|
|
+ static void AutoSetASTC()
|
|
|
+ {
|
|
|
+ string[] guidArray = Selection.assetGUIDs;
|
|
|
+ foreach (var item in guidArray)
|
|
|
+ {
|
|
|
+ string selectFloder = AssetDatabase.GUIDToAssetPath(item);
|
|
|
+ DirectoryInfo root = new DirectoryInfo(selectFloder);
|
|
|
+ GetFloder(root);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ static void GetFloder(DirectoryInfo root)
|
|
|
+ {
|
|
|
+ GetFile(root);
|
|
|
+ //查找子文件夹
|
|
|
+ DirectoryInfo[] array = root.GetDirectories();
|
|
|
+ //Debug.Log(root);
|
|
|
+ foreach (DirectoryInfo item in array)
|
|
|
+ {
|
|
|
+ GetFloder(item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ static void GetFile(DirectoryInfo root)
|
|
|
+ {
|
|
|
+ //DirectoryInfo root = new DirectoryInfo(path);
|
|
|
+ FileInfo[] fileDic = root.GetFiles();
|
|
|
+ foreach (var file in fileDic)
|
|
|
+ {
|
|
|
+ //sDebug.Log(file);
|
|
|
+ if (!file.FullName.EndsWith(".meta"))
|
|
|
+ {
|
|
|
+ //Debug.Log("-------------" + file.FullName);
|
|
|
+ //Debug.Log(Application.dataPath);
|
|
|
+ SetPicFormat(file.FullName.Replace(Application.dataPath.Replace("Assets", ""), ""));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ static void SetPicFormat(string path)
|
|
|
+ {
|
|
|
+ string onePath = GetImageProjectPath(path);
|
|
|
+ Debug.Log(onePath);
|
|
|
+ TextureImporter textureImporter = AssetImporter.GetAtPath(onePath) as TextureImporter;
|
|
|
+ if (textureImporter == null)
|
|
|
+ return;
|
|
|
+ if (textureImporter.mipmapEnabled == true)
|
|
|
+ {
|
|
|
+ textureImporter.mipmapEnabled = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ ChangeTextureSetting(textureImporter);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void ChangeTextureSetting(TextureImporter textureImporter)
|
|
|
+ {
|
|
|
+ ChangeIphoneSetting(textureImporter);
|
|
|
+ ChangeAndroidSetting(textureImporter);
|
|
|
+ textureImporter.SaveAndReimport();
|
|
|
+ }
|
|
|
+
|
|
|
+ static void ChangeIphoneSetting(TextureImporter textureImporter)
|
|
|
+ {
|
|
|
+ TextureImporterPlatformSettings settings = textureImporter.GetPlatformTextureSettings("Iphone");
|
|
|
+ settings.overridden = true;
|
|
|
+ settings.maxTextureSize = 2048;
|
|
|
+ settings.format = TextureImporterFormat.ASTC_6x6;
|
|
|
+ textureImporter.SetPlatformTextureSettings(settings);
|
|
|
+ }
|
|
|
+ static void ChangeAndroidSetting(TextureImporter textureImporter)
|
|
|
+ {
|
|
|
+ TextureImporterPlatformSettings settings = textureImporter.GetPlatformTextureSettings("Android");
|
|
|
+ settings.overridden = true;
|
|
|
+ settings.maxTextureSize = 2048;
|
|
|
+ settings.format = TextureImporterFormat.ASTC_6x6;
|
|
|
+ textureImporter.SetPlatformTextureSettings(settings);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 根据固定字符串得到资源路径
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="fullName"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ static string GetImageProjectPath(string fullName)
|
|
|
+ {
|
|
|
+ string result = "";
|
|
|
+ int index = fullName.LastIndexOf("Assets");
|
|
|
+ result = fullName.Substring(index, fullName.Length - index);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|