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 ...
随机推荐
- 简约博客V1.1版本上线 + 一套新主题
Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 简约博客V1.1版本上线 + 一套新主题 日期:2017- ...
- 博客更换新域名为52ecy.cn
Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 博客更换新域名为52ecy.cn 日期:2017-10-2 ...
- Operational Property Graphs到底是个啥?
Operational Property Graphs,中文通常译为"操作属性图". 作为23ai中被官方highlight出的新特性之一,我们先看下官方的原文描述: Operat ...
- iOS11之后刷新tableview会出现漂移的现象解决办法
首先要注意这只是在iOS11下会出现的bug,如果iOS10以及以下也有问题的情况不属于此列 问题的动图如下所示,如果要做每隔一段短时间就刷新一个section甚至整个tableview的操作的时候会 ...
- 天翼云安装nexus3.37.1
有点操蛋,官网网络太慢了! 百度了不少网友的内容,综合如下 总体是个皮毛,但已经可以用于开发了! 一.下载和安装 https://download.sonatype.com/nexus/3/nexus ...
- VUE中watch的详细使用教程
1.watch是什么? watch:是vue中常用的侦听器(监听器),用来监听数据的变化 2.watch的使用方式如下 watch: { 这里写你在data中定义的变量名或别处方法名: { han ...
- 『vulnhub系列』EVILBOX-ONE
『vulnhub系列』EVILBOX-ONE 下载地址: https://www.vulnhub.com/entry/evilbox-one,736/ 信息搜集: 使用nmap探测内网存活主机,发现开 ...
- GaussDB(DWS)性能调优,解决DM区大内存占用问题
本文分享自华为云社区<GaussDB(DWS)性能调优:DM区优化案例--维度表关联条件存在会计期>,作者: O泡果奶~. 当前DM(P1.P3.CBGDM)存在维度表与主表关联时使用会计 ...
- MFC基于对画框工程笔记->更改窗口图标以及生成的.exe图标
一.前言 继前一篇生成MFC基于对话框工程->新建MFC对话框后,开始改动对话框图标以及生成的.exe图标. 原对话框图标以及.exe图标: 在菜单栏中选择生成目录为Release 打开Rele ...
- Windows服务器安全检查
为降低windows服务器系统的脆弱性,除了补丁及时更新,还建议加强系统账号的管理. 1.精简系统登录账号,最小化登录权限 检查方法:开始->运行->compmgmt.msc(计算机管理) ...