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 ...
随机推荐
- 实验四:WinRAR漏洞
[实验目的] 通过打开rar文件,获取到目标机shell. [知识点] winrar漏洞 [实验原理] 该漏洞是由于WinRAR所使用的一个陈旧的动态链接库UNACEV2.dll所造成的,该动态链接库 ...
- CodeForces 1935A
题目链接:Entertainment in MAC 思路 当当前操作次数n为偶数时,若原字符串大于反转字符串则可以将原字符串反转n - 2次,则得到的还是原字符串,此时反转一次,并将其再次反转的字符串 ...
- spring与设计模式之二单例模式
网络上都说ApplicationContext是单例,但看了原始代码,我认为应该是一个错误的表达. 我们来看Spring6.x中用springboot创建一个程序的时候默认的applicationCo ...
- CentOS7安装最新版ruby
背景 直接通过yum安装的ruby版本太低,不能满足redis.fpm等软件的需求. 系统环境 CentOS7 安装步骤 下载ruby http://www.ruby-lang.org/en/down ...
- BST-splay板子 - 维护一个分裂和合并的序列
splay 均摊复杂度 \(O(\log n)\) 证明: https://www.cnblogs.com/Mr-Spade/p/9715203.html 我这个 splay 有两个哨兵节点,分别是1 ...
- rar终端常用命令
rar终端常用命令 1. 跳过目录: rar a xxx.rar -x./path_to_dir/ ./xxx/ [注] rar后面的文件夹不需要通配符 2. 加密码 rar a xxx.tar -p ...
- 重复消费Java Stream的三种方法。你选择哪种?
Java中的Stream一旦被消费就会关闭,不能再次使用了.如果的确有需要该怎么办呢? 这里介绍三种重复消费Stream的方法. 1. 从集合再次创建 这里你都不用往下继续看就知道该怎么办,不过我还是 ...
- Window版 MySQL可视化工具 Navicat 面安装免激活绿色版
网盘地址 链接:https://pan.baidu.com/s/1T0WyhGAFEt28GaU4wXhfrg 提取码:z4ww navicat15破解版 链接:https://pan.baidu.c ...
- c++临时对象导致的生命周期问题
对象的生命周期是c++中非常重要的概念,它直接决定了你的程序是否正确以及是否存在安全问题. 今天要说的临时变量导致的生命周期问题是非常常见的,很多时候没有一定经验甚至没法识别出来.光是我自己写.rev ...
- 大一新生的作业(洛谷P1150,1035,1075)
本帖背景:此帖讲解大一新生团队作业 截止日期10-31 17:09 P1150(Peter的烟) 算法简介 本题主要考察的是模拟算法 模拟算法一般考察一些比较基础的题目,它将生活中的实例融合到了编程题 ...