using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEditor;
using UnityEngine;
public class TextureAutoSet : EditorWindow
{
[MenuItem("Assets/检查图片压缩格式", priority = 0)]
static void AutoSetASTC()
{
string[] guidArray = Selection.assetGUIDs;
Debug.Log(guidArray.Length);
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();
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('\\','/').Replace(Application.dataPath.Replace("Assets", ""), ""));
}
}
}
static void SetPicFormat(string path)
{
TextureImporter importer = AssetImporter.GetAtPath(path) as TextureImporter;
if (importer==null)
{
return;
}
var tempsss = importer.GetPlatformTextureSettings("Android");
bool isNeedFormat = false;
switch (tempsss.format)
{
case TextureImporterFormat.ASTC_RGB_4x4:
case TextureImporterFormat.ASTC_RGB_5x5:
case TextureImporterFormat.ASTC_RGB_6x6:
case TextureImporterFormat.ASTC_RGB_8x8:
case TextureImporterFormat.ASTC_RGB_10x10:
case TextureImporterFormat.ASTC_RGB_12x12:
case TextureImporterFormat.ASTC_RGBA_4x4:
case TextureImporterFormat.ASTC_RGBA_5x5:
case TextureImporterFormat.ASTC_RGBA_6x6:
case TextureImporterFormat.ASTC_RGBA_8x8:
case TextureImporterFormat.ASTC_RGBA_10x10:
case TextureImporterFormat.ASTC_RGBA_12x12:
Debug.Log(path);
isNeedFormat = true;
break;
default:
break;
}
if (!isNeedFormat || !tempsss.overridden)
{
Debug.Log("设置图片格式"+path);
tempsss.overridden = true;
tempsss.format = TextureImporterFormat.ASTC_RGBA_6x6;
tempsss.maxTextureSize = 1024;
importer.SetPlatformTextureSettings(tempsss);
importer.SaveAndReimport();
}
}
}
Unity检查当前文件夹图片压缩格式(ASTC,ETC等)
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 源自网络,做了一点修改,将文件夹名中的空格替换为下划线。 #!/bin/bash rename 's/ /_/g'...
- 需要注意的是 中的参数。需要先到https://sites.google.com/a/chromium.org/c...
- 前言 计算机的内存是有限的,面对海量的数据和垃圾文件,我们的电脑越来越慢,这时我们想清理一下我们的硬盘,通常的方法...