zoukankan      html  css  js  c++  java
  • unity批量设置图片为etc2格式或者astc格式

    网上找了半天,没一个能用的,干脆自己写个,直接拷贝这个脚本就行

    这个是ios版本的,安卓的话写在注释里面,去掉注释就能用了

    现在ios支持一种新格式叫astc比原本的pvrtc压缩比更高,而且质量更高,但是iphone5及更老的机子不支持,所以不打算支持iphone5的话,可以用新格式,不然还是用pvrtc

    我试了下,感觉6*6的astc的性价比最高

    下面放脚本

    using System.Collections;
    using System.Collections.Generic;
    using System.IO;
    using UnityEditor;
    using UnityEngine;
    
    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(".png") || file.FullName.EndsWith(".jpg") || file.FullName.EndsWith(".tga") ||
                    file.FullName.EndsWith(".psd") || file.FullName.EndsWith(".PSD") || file.FullName.EndsWith(".exr") ||
                    file.FullName.EndsWith(".tif"))
                {
                    //Debug.Log("-------------" + file.FullName);
                    //Debug.Log(Application.dataPath);
                    SetPicFormat(file.FullName.Replace(Application.dataPath.Replace("Assets",""),""));
                }
            }
        }
    
        static void SetPicFormat(string path)
        {
            Debug.Log(path);
            TextureImporter importer = AssetImporter.GetAtPath(path) as TextureImporter;
            if (importer.mipmapEnabled == true)
            {
                importer.mipmapEnabled = false;
            }
            
            //判断图片大小
            Texture2D texture = AssetDatabase.LoadAssetAtPath<Texture2D>(path);
            int textureSize = Mathf.Max(texture.height, texture.width);
            //Debug.Log(textureSize);
            int SizeType = FitSize(textureSize);
            
            //Android   iPhone
            if(importer.DoesSourceTextureHaveAlpha())
            {
                //ios版本
                importer.SetPlatformTextureSettings("iPhone", SizeType, TextureImporterFormat.ASTC_RGBA_6x6);
                //安卓版本
                //importer.SetPlatformTextureSettings("Android", SizeType, TextureImporterFormat.ETC2_RGBA8);
            }
            else
            {
                //ios版本
                importer.SetPlatformTextureSettings("iPhone", SizeType, TextureImporterFormat.ASTC_RGB_6x6);
                //安卓版本
                //importer.SetPlatformTextureSettings("Android", SizeType, TextureImporterFormat.ETC2_RGB4);
            }
        }
        
        static int[] formatSize = new int[]{32,64,128,256,512,1024,2048,4096};
        static int FitSize(int picValue)
        {
            foreach (var one in formatSize)
            {
                if (picValue <= one)
                {
                    return one;
                }
            }
    
            return 1024;
        }
    }

    ---------------------------------------------------已经不需要这样做了----------------------------------------------------------

    新版本直接设置

  • 相关阅读:
    nginx相关
    facebook开源项目集合
    鸡汤有毒--大家多读
    曹政--互联网搜索老师傅
    将jar文件加到Maven的local repository中
    java web classpath
    java 读取excel内容转为JSONArray
    (.DS_Store)避免多人提交代码到GitHub上起冲突
    mvn dependency:tree
    Java Web乱码分析及解决方案
  • 原文地址:https://www.cnblogs.com/sanyejun/p/10259766.html
Copyright © 2011-2022 走看看