Unity编辑器批量设置图片格式
在游戏开发中,经常需要批量设置图片的格式为Sprite类型,手动设置太麻烦,下面的编辑器脚本实现选中文件夹右键/Texture/SetAllImagesToSpriteType实现批量设置图片格式,具体格式参数可自行定义
using System;
using System.IO;
using UnityEngine;
using UnityEditor; /// <summary>
/// 资源重设置导入刷新
/// </summary>
public class AssetProcessor : AssetPostprocessor
{
[MenuItem("Assets/Texture/SetAllImagesToSpriteType")]
public static void SetAllTextureType()
{
//获取鼠标点击图片目录
var arr = Selection.GetFiltered(typeof(DefaultAsset), SelectionMode.Assets);
string folder = AssetDatabase.GetAssetPath(arr[0]);
Debug.Log("SetAllImagesToSpriteType Path:" + folder); //遍历文件夹获取所有.png/.jpg
DirectoryInfo direction = new DirectoryInfo(folder);
FileInfo[] pngFiles = direction.GetFiles("*.png", SearchOption.AllDirectories);
FileInfo[] jpgfiles = direction.GetFiles("*.jpg", SearchOption.AllDirectories); try
{
SetTexture(pngFiles);
SetTexture(jpgfiles);
}
catch (Exception e)
{
Debug.LogError(e);
}
finally
{
EditorUtility.ClearProgressBar();
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
}
} static void SetTexture(FileInfo[] fileInfo)
{
for (int i = 0; i < fileInfo.Length; i++)
{
//这里第一次写时有一个接口可直接调用,但是第二次写时找不到了 所以用了切割字符
string fullpath = fileInfo[i].FullName.Replace("\\", "/");
string path = fullpath.Replace(Application.dataPath, "Assets");
TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter; EditorUtility.DisplayProgressBar("批量处理图片", $"{i}/{fileInfo.Length} \n{fileInfo[i].Name} ", i / (float)fileInfo.Length);
SetTextureFormat(textureImporter);
//触发重新导入资源才生效,否则需要重启Unity触发自动导入
AssetDatabase.ImportAsset(path);
}
} //设置图片格式
static void SetTextureFormat(TextureImporter textureImporter)
{
//根据路径获得文件夹目录,设置图集的packagingTag
string AtlasName = new DirectoryInfo(Path.GetDirectoryName(textureImporter.assetPath)).Name;
textureImporter.mipmapEnabled = false;
textureImporter.isReadable = false;
textureImporter.textureType = TextureImporterType.Sprite;
textureImporter.spritePackingTag = AtlasName;
textureImporter.wrapMode = TextureWrapMode.Clamp;
textureImporter.npotScale = TextureImporterNPOTScale.None;
textureImporter.textureFormat = TextureImporterFormat.Automatic;
textureImporter.textureCompression = TextureImporterCompression.Compressed; //Android端单独设置
TextureImporterPlatformSettings setting_android = new TextureImporterPlatformSettings();
setting_android.overridden = true;
setting_android.name = "Android";
//根据是否有透明度,选择RGBA还是RGB
if (textureImporter.DoesSourceTextureHaveAlpha())
setting_android.format = TextureImporterFormat.ETC2_RGBA8;
else
setting_android.format = TextureImporterFormat.ETC2_RGB4; textureImporter.SetPlatformTextureSettings(setting_android); //IOS端单独设置
TextureImporterPlatformSettings setting_iphone = new TextureImporterPlatformSettings();
setting_iphone.overridden = true;
setting_iphone.name = "iOS";
//根据是否有透明度,选择RGBA还是RGB
if (textureImporter.DoesSourceTextureHaveAlpha())
setting_android.format = TextureImporterFormat.ASTC_6x6;
else
setting_android.format = TextureImporterFormat.ASTC_6x6;
textureImporter.SetPlatformTextureSettings(setting_iphone);
}
}
Unity编辑器批量设置图片格式的更多相关文章
- java批量转换图片格式
废话不多直接上代码,代码其实也不多.... package com.qiao.testImage; import java.awt.image.BufferedImage; import java.i ...
- 使用IMAGEMAGICK的CONVERT工具批量转换图片格式
使用IMAGEMAGICK的CONVERT工具批量转换图片格式 http://www.qiansw.com/linux-imagemagick-convert-img.html Home > 文 ...
- Python批量修改图片格式和尺寸
Python批量修改图片格式和尺寸 备注: 1.导入了PIL库,是处理图片用的,很强大; 2.导入了的win32库,是判断隐藏文件用的,我们的项目需要删除隐藏文件,不需要的可以直接找到删除. 3.导入 ...
- Mac OS 如何批量转换图片格式
在苹果电脑中,如何快速批量地转换图片的格式.苹果电脑的预览程序,可以实现PNG.JPEG.JPEG-2000.PDF.TIFF格式之间的互换.这里以将PNG格式转换为JPEG格式为例. 工具/原料 ...
- Python 批量修改图片格式和尺寸
公司的一个项目要求把所有4096x4096的图片全部转化成2048x2048的图片,这种批量转换图片大小的软件网上很多,我的同事原来使用的美图看看的批量转换,但是稍微有点麻烦,每次还需要指定要转换的图 ...
- 【最简单】不用ps也可以批量转换图片格式
不废话直接开始~ 1.新建文件夹,把需要转换的图片放进去,如图: 2.文件夹里建一txt文本,重点来了!txt文本的内容,如果是jpg转为png,则输入“ren *.jpg *.png”,同理png转 ...
- PyQt5设置图片格式及动画
1.缩放图片'''使用QImage.Scale(width,height)方法可以来设置图片'''from PyQt5.QtCore import *from PyQt5.QtGui import * ...
- unity批量设置图片为etc2格式或者astc格式
网上找了半天,没一个能用的,干脆自己写个,直接拷贝这个脚本就行 这个是ios版本的,安卓的话写在注释里面,去掉注释就能用了 现在ios支持一种新格式叫astc比原本的pvrtc压缩比更高,而且质量更高 ...
- [word]用Word2007查找和替换功能批量设置图片位置
Word2007的"查找和替换"功能并不仅仅可以对文字进行批量的查找替换,还有很多神奇的功能,比如对插入的图片位置进行批量的查找和调整等等. 今天我们就来试试Word2007的&q ...
- python 批量更换图片格式脚本
问题:将某文件下的所有jpg的图片更换为png的图片 简单的实现: # -*- coding:utf-8 -*- from os.path import splitext import glob fr ...
随机推荐
- 各种语言的OEP大全
Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 各种语言的OEP大全 日期:2017-5-19 阿珏 教程 ...
- Java实现管线拓扑关系连通性分析
管线拓扑关系的连通性分析通常涉及图论(Graph Theory)中的概念,特别是无向图(Undirected Graph)的遍历算法,如深度优先搜索(DFS, Depth-First Search)或 ...
- podman+openresty+openssl,https双向认证demo测试
前言 暂不讨论https原理,单论配置的话: 1. https单项认证 server: server.crt + server.key client: server_ca.crt 2. https双向 ...
- Java 、C# Excel模板,数据一对多,主从表关系,导入到数据库
思路 单表导入的比较容易,但是有的时候,可能会出现,一对多数据导入的,这个情况怎么办呢?先理解上面的图,后台获取数据的时候,除了"风险防控措施"外,其他字段先分组,"黄色 ...
- 机器学习策略篇:快速搭建你的第一个系统,并进行迭代(Build your first system quickly, then iterate)
快速搭建的第一个系统,并进行迭代 如果正在考虑建立一个新的语音识别系统,其实可以走很多方向,可以优先考虑很多事情. 比如,有一些特定的技术,可以让语音识别系统对嘈杂的背景更加健壮,嘈杂的背景可能是说咖 ...
- Java-JSP既可以指定定义HTML标签,又可以定义java代码
概念: Java Server Pages:java服务器端页面 可以理解为:一个特殊页面,其中既可以指定定义HTML标签,又可以定义java代码 用于简化书写 原理: JSP本质上就是一个Servl ...
- adorner 使用示例
模块介绍 adorner 是一个现代轻量级的 Python 装饰器辅助模块. 目前该模块仅实现了 4 个类,对应着 4 个功能:制造装饰器.执行计时.函数缓存.捕获重试. 仓库地址:https://g ...
- 日文乱码转换 | Windows下使用方法详解
背景:有一个乱码的日文txt,需要让它正常显示. 一.下载转换软件 这应该是软件作者的主页 http://acg17.com/9713.html 也可以在这里获取软件: https://wwa.lan ...
- Stopwatch 类来测量时间间隔
使用 Stopwatch 类来测量时间间隔. 以下是一个示例代码,展示如何记录 Excel 导入的用时: ' 创建 Stopwatch 实例 Dim stopwatch As New Stopwatc ...
- ABC361-C题解
背景 昨天打比赛的时候查了中考分,心快停跳了. 题意 从 \(n\) 个数字中删除 \(k\) 个数字,问剩下的数字中极差的最小值. 分析 首先把这 \(n\) 个数字排序,然后问题就可以转化为求这 ...