BatchModifyTexture.cs

 using UnityEngine;
using System.Collections;
using UnityEditor;
using System.IO; public class BatchModifyTexture { [MenuItem("Assets/BatchModifyTexture")]
static void Init()
{
//获取Project视图中的选中目录下的所有图片
Object[] objects = Selection.GetFiltered(typeof(Object), SelectionMode.Unfiltered);
string dir = Application.dataPath.Substring(, Application.dataPath.LastIndexOf("/")) + "/" + AssetDatabase.GetAssetPath(objects[]);
//Debug.LogError(dir);
string[] paths = Directory.GetFiles(dir, "*.png", SearchOption.AllDirectories); //创建存放目录
string saveDir = Application.dataPath + "/BatchModifyTexture";
if (!Directory.Exists(saveDir))
{
Directory.CreateDirectory(saveDir);
} //图片处理
for (int i = ; i < paths.Length; i++)
{
string path = paths[i];
string assetPath = path.Substring(path.IndexOf("Assets/"));
string name = assetPath.Substring(assetPath.LastIndexOf("\\") + );
//Debug.LogWarning(assetPath);
//Debug.LogWarning(name); //设置成可读
TextureImporter textureImporter = AssetImporter.GetAtPath(assetPath) as TextureImporter;
textureImporter.textureType = TextureImporterType.Advanced;
textureImporter.isReadable = true;
AssetDatabase.ImportAsset(assetPath); //图片颜色变亮
Texture2D tex = AssetDatabase.LoadAssetAtPath<Texture2D>(assetPath);
Color[] colors = tex.GetPixels(, , tex.width, tex.height);
Texture2D texTemp = new Texture2D(tex.width, tex.height);
Color[] colorsTemp = new Color[colors.Length]; for (int j = ; j < colors.Length; j++)
{
colorsTemp[j] = colors[j] * 2f;
}
texTemp.SetPixels(, , tex.width, tex.height, colorsTemp);
texTemp.Apply();
byte[] bytes = texTemp.EncodeToPNG();
File.WriteAllBytes(saveDir + "/" + name, bytes);
} AssetDatabase.Refresh();
Debug.Log("BatchModifyTexture Finish");
}
}

[Unity工具]批量修改Texture的更多相关文章

  1. [Unity工具]批量修改字体

    效果图: using System.IO; using System.Text; using UnityEditor; using UnityEngine; using UnityEngine.UI; ...

  2. ansible非root用户批量修改root密码

    前言: 由于线上服务器密码长久没有更新,现领导要求批量更换密码.线上的之前部署过salt,但由于各种因素没有正常使用. 使用自动化工具批量修改的计划搁浅了,后来领导给了个python多线程修改密码脚本 ...

  3. unity工具IGamesTools之批量生成帧动画

    unity工具IGamesTools批量生成帧动画,可批量的将指定文件夹下的帧动画图片自动生成对应的资源文件(Animation,AnimationController,Prefabs) unity工 ...

  4. C#代码生成工具:文本模板初体验 使用T4批量修改实体框架(Entity Framework)的类名

    转自:http://www.cnblogs.com/huangcong/archive/2011/07/20/1931107.html 在之前的文本模板(T4)初体验中我们已经知道了T4的用处,下面就 ...

  5. unity批量修改AssetBundleName与Variant

    批量修改指定路径下的资源的AssetBundleName与Variant. 脚本代码如下: using System.Collections; using System.Collections.Gen ...

  6. 批量修改vss工作目录

    vss作为源代码版本控制工具,可以针对不同的文件夹设置不同的本地工作目录,这样可以方便我们不同的个性化需求.但是往往实际情况是,我们设置了不同的工作目录,后来却发现导致引用混乱,每个人每次获取项目文件 ...

  7. Unity3D Editor模式下批量修改prefab

    最经遇到一个需要批量修改已经做好的prefab的问题,查了一些资料最终实现了但是还是不够完美,通过学习也发现unity的编辑器功能还是非常强大的.废话不多说直接上代码: [ExecuteInEditM ...

  8. MathType中如何批量修改公式字体和大小

    MathType中如何批量修改公式字体和大小 关于MathType : MathType 是由美国Design Science公司开发的功能强大的数学公式编辑器,它同时支持Windows和Macint ...

  9. Unix时间戳转换怎样在Excel批量修改?

    最近在操作项目的时候碰到一个Unix时间戳转换的问题."date_time":1393031347这个是什么,你知道吗?如果你对Unix时间戳了解的话一眼就看出来.但我们本着科普的 ...

随机推荐

  1. Linux paste命令详解

    Linux paste命令 Linux paste命令用于合并文件的列.paste指令会把每个文件以列对列的方式,一列列地加以合并 将每个指定文件里的每一行整合到对应一行里写到标准输出,之间用制表符分 ...

  2. java.lang.NoSuchMethodError: javax.wsdl.xml.WSDLReader.readWSDL

    CXF调用web service报错:java.lang.NoSuchMethodError: javax.wsdl.xml.WSDLReader.readWSDL 原因,wsdl jar报冲突,系统 ...

  3. Windows Azure Web Site (18) Azure Web App设置MIME

    <Windows Azure Platform 系列文章目录> 在笔者之前的文章中,介绍了我们在使用Azure Web App,可以把静态资源保存到Azure Storage中: Wind ...

  4. Vistual Studio XML 智能提示

    开发中经常遇到要和各种各样的 XML 打交道,编辑 XML 文件时最头痛的便是要记住许多 XML 元素名称.属性名称. 幸运的是,Vistual Studio 的 XML 智能提示功能可以大大地减轻这 ...

  5. python学习疑问

    1.(已解决) test = [1, 2, 3, 4] ", id(test)) def func(a): ", id(a)) a = a.remove(1) ", id ...

  6. Ngui Tween 组合动画 group

    使用NGUI的Tween做补间动画,难免会涉及组合各种Tween.最常用的就是 Scale+Alpha组合 做淡入淡出了.那么如何控制 播放完一个Tween 后在 播放另一个Tween呢? 利用del ...

  7. boost::asio::io_context类

    //有个疑惑: 向io_context对象中提交的任务只能被顺序化的执行. //下面这个构造函数表明可以运行多线程啊..... /** * Construct with a hint about th ...

  8. 其他类想使用unittest的断言方法,就import unittest的框架,继承他,使用他里面的方法

    在断言层 也可以同样用这个方法

  9. 廖雪峰Java6IO编程-2input和output-1inputStream

    1.InputStream 1.1InputStream是所有输入流的超类: int read() * 读取下一个字节,并返回字节(0-255) * 如果已读到末尾,返回-1 * read()方法是阻 ...

  10. docker之小记一

    PaaS上build新版本的基础组件的镜像总是失败,提示也不是很明确.突然想起来,镜像的依赖关系做过变更,可能是缺少基础镜像的原因. 由于没有统一的仓库或者只是我还不知道,就从制品库下载对应的镜像,然 ...