浏览代码

Revert "Revert "贴图设置""

This reverts commit 4109fe0b44eaaa49e07142fca737f76b6b530f53.
beiguoxia 1 年之前
父节点
当前提交
4c0b330c9c

+ 8 - 0
GameClient/Assets/Editor/ArtsRes/TextureSetting.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 697338496ce61e843964e7c80d4c8d57
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 106 - 0
GameClient/Assets/Editor/ArtsRes/TextureSetting/TextureAutoSet.cs

@@ -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;
+        }
+
+    }
+}

+ 11 - 0
GameClient/Assets/Editor/ArtsRes/TextureSetting/TextureAutoSet.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 28ed1ee3d4953714e99a0620ae55d5e5
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 16 - 0
GameClient/Assets/Editor/ArtsRes/TextureSetting/TextureImporterSetting .cs

@@ -0,0 +1,16 @@
+using UnityEditor;
+
+namespace GFGEditor
+{
+    public class TextureImporterSetting : AssetPostprocessor
+    {
+        void OnPreprocessTexture()
+        {
+            TextureImporter textureImporter = assetImporter as TextureImporter;
+            if (textureImporter != null)
+            {
+                TextureAutoSet.ChangeTextureSetting(textureImporter);
+            }
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Editor/ArtsRes/TextureSetting/TextureImporterSetting .cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a007cf02c25327045b8f3a392218b411
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: