zoukankan      html  css  js  c++  java
  • [Unity工具]批量修改Texture

    BatchModifyTexture.cs

     1 using UnityEngine;
     2 using System.Collections;
     3 using UnityEditor;
     4 using System.IO;
     5 
     6 public class BatchModifyTexture {
     7 
     8     [MenuItem("Assets/BatchModifyTexture")]
     9     static void Init()
    10     {
    11         //获取Project视图中的选中目录下的所有图片
    12         Object[] objects = Selection.GetFiltered(typeof(Object), SelectionMode.Unfiltered);
    13         string dir = Application.dataPath.Substring(0, Application.dataPath.LastIndexOf("/")) + "/" + AssetDatabase.GetAssetPath(objects[0]);
    14         //Debug.LogError(dir);
    15         string[] paths = Directory.GetFiles(dir, "*.png", SearchOption.AllDirectories);
    16 
    17         //创建存放目录
    18         string saveDir = Application.dataPath + "/BatchModifyTexture";
    19         if (!Directory.Exists(saveDir))
    20         {
    21             Directory.CreateDirectory(saveDir);
    22         }
    23 
    24         //图片处理
    25         for (int i = 0; i < paths.Length; i++)
    26         {
    27             string path = paths[i];
    28             string assetPath = path.Substring(path.IndexOf("Assets/"));
    29             string name = assetPath.Substring(assetPath.LastIndexOf("\") + 1);
    30             //Debug.LogWarning(assetPath);
    31             //Debug.LogWarning(name);
    32 
    33             //设置成可读
    34             TextureImporter textureImporter = AssetImporter.GetAtPath(assetPath) as TextureImporter;
    35             textureImporter.textureType = TextureImporterType.Advanced;
    36             textureImporter.isReadable = true;
    37             AssetDatabase.ImportAsset(assetPath);
    38 
    39             //图片颜色变亮
    40             Texture2D tex = AssetDatabase.LoadAssetAtPath<Texture2D>(assetPath);
    41             Color[] colors = tex.GetPixels(0, 0, tex.width, tex.height);
    42             Texture2D texTemp = new Texture2D(tex.width, tex.height);
    43             Color[] colorsTemp = new Color[colors.Length];
    44 
    45             for (int j = 0; j < colors.Length; j++)
    46             {
    47                 colorsTemp[j] = colors[j] * 2f;
    48             }
    49             texTemp.SetPixels(0, 0, tex.width, tex.height, colorsTemp);
    50             texTemp.Apply();
    51             byte[] bytes = texTemp.EncodeToPNG();
    52             File.WriteAllBytes(saveDir + "/" + name, bytes);
    53         }
    54 
    55         AssetDatabase.Refresh();
    56         Debug.Log("BatchModifyTexture Finish");
    57     }
    58 }
  • 相关阅读:
    [BZOJ 2820]YY的GCD
    [POI 2007]ZAP-Queries
    [USACO 04OPEN]MooFest
    [HAOI 2011]Problem b
    [COGS 2258][HZOI 2015]复仇的序幕曲
    [UOJ 41]【清华集训2014】矩阵变换
    [POJ 3487]The Stable Marriage Problem
    [POJ 3252]Round Numbers
    [COGS 1799][国家集训队2012]tree(伍一鸣)
    [SDOI 2011]计算器
  • 原文地址:https://www.cnblogs.com/lyh916/p/9092099.html
Copyright © 2011-2022 走看看