zoukankan      html  css  js  c++  java
  • Unity工程资源破解

        Unity工程资源提取其实还是很方便的,网上也有很多相关介绍,比如雨凇就专门写了一遍关于破解Unity资源的文章(http://www.xuanyusong.com/archives/3618),当然即使有傻瓜式教程,也难免会踩一些坑,下面记录一下这两天破解Unity资源的工程。

        一.disunity

        disunity是一款开源项目,java语言写的,轻量级,传言简单易用,然而并不好用,

        1.disunity5.x版本命令如何尝试都不成功,总是报出如下问题:

    {KXT7_@3~(TKFOM1AD8IZZ8

         2.disunity3.x 使用还是比较顺利的,但是并没有破解完全,一部分贴图并没有被提取出来,而且每张贴图有很多mip图集,总体破解结果并不好。

    BKJ0]]CL@_8F~}}UJGY46AP

          如破解结果:

    ){@QFG1}]2991B(2BU4S9IB

        二.UnityAssetsExplorer

        这个工具也可以顺利提取资源,但是使用也挺方便,但是提取的资源也不是十分令人满意。不过最新版本据说支持Unity5.x,具体没继续尝试了。

        三. Unity Studio

        Unity Studio十分强大,可以在直接预览资源,但是导出的贴图文件时dds格式,而且导出的贴图是“倒的”,两个难点:dds转png或者jpg 、 把图片反转。

    使用方法十分简单,只要File—>选择解压包目录assetsinData就可以了,之后就可以看到资源列表了:

    `Q9Q8M}UJJ6I9QTL6DTF$GX

    之后就可以导出资源了,Unity Studio导出的贴图是dds格式,需要转换其他格式,这里推荐DDS Converter,使用也很简单,但是,但是,但是……转换后的贴图竟然是倒着的

    BG2E8C`MVTBC{$M7BWG]UJX

    这里就有第二个问题,处理图片倒位问题,这里似乎就没什么工具可以用了,不过简单思考一下也可以找到解决办法。既然图片是倒的,那只需要把像素点上下反转一下就可以的,按照这个想法就用c#写了一个简单的工具,也就实现了正常的图片,贴一下代码:

    namespace WindowsFormsApplication1
    {
        class HandleImage
        {
            static string loadPath = @"E:NewProjectTest
    st";
            public void HandleImg()
            {
                string[] files = Directory.GetFiles(loadPath);
                for (int i = 0; i < files.Length; i++)
                {
                    Bitmap img = new Bitmap(files[i]);
                    Bitmap bTemp = RevPicUD(img);
                    Save(bTemp, files[i]);
                }
            }
    
    //上下翻转
             public Bitmap RevPicUD(Bitmap mybm)
             {
    
                 int height = mybm.Size.Height;
                 int width = mybm.Size.Width;
                Bitmap bm = new Bitmap(width, height);
                 int x, y, z;
                Color pixel;
                for (x = 0; x < width; x++)
                 {
                     for (y = height - 1, z = 0; y >= 0; y--)
                     {
                         pixel = mybm.GetPixel(x, y);//获取当前像素的值
                         bm.SetPixel(x, z++, Color.FromArgb(pixel.R, pixel.G, pixel.B));//绘图
                     }
                }
                return bm;
             }
    //左右翻转
            public Bitmap RevPicLR(Bitmap mybm)
             {
                 int height = mybm.Size.Height;
                 int width = mybm.Size.Width;
                 Bitmap bm = new Bitmap(width, height);
                int x, y, z; //x,y是循环次数,z是用来记录像素点的x坐标的变化的
                 Color pixel;
                 for (y = height - 1; y >= 0; y--)
                {
                     for (x = width - 1, z = 0; x >= 0; x--)
                    {
                         pixel = mybm.GetPixel(x, y);//获取当前像素的值
                         bm.SetPixel(z++, y, Color.FromArgb(pixel.R, pixel.G, pixel.B));//绘图
                     }
               }
                 return bm;
             }
    
    
            public void Save(Bitmap bitMap , string path)
            {
                path = path.Replace("rst", "handled");
                bitMap.Save(path, ImageFormat.Jpeg);
            }
        }
    }

    处理完上面的问题,贴图就算基本正常了,如图:

    ABG7NEHA8Y)G25E0{O07PZ7

    哈哈,到这里资源提取就算基本成功了,但是……还是有个问题,就是alpha通道丢失了,想了很久并没有找到解决办法,只能用ps抠图了,汗……如果有大神有办法完美解决这个问题,还请留言赐教一下哈

    附上dds转换工具和Unity Studio 工具下载:http://files.cnblogs.com/files/lixiang-share/UnityResTools.zip

  • 相关阅读:
    BZOJ 1977: [BeiJing2010组队]次小生成树 Tree( MST + 树链剖分 + RMQ )
    BZOJ 2134: 单选错位( 期望 )
    BZOJ 1030: [JSOI2007]文本生成器( AC自动机 + dp )
    BZOJ 2599: [IOI2011]Race( 点分治 )
    BZOJ 3238: [Ahoi2013]差异( 后缀数组 + 单调栈 )
    ZOJ3732 Graph Reconstruction Havel-Hakimi定理
    HDU5653 Bomber Man wants to bomb an Array 简单DP
    HDU 5651 xiaoxin juju needs help 水题一发
    HDU 5652 India and China Origins 并查集
    HDU4725 The Shortest Path in Nya Graph dij
  • 原文地址:https://www.cnblogs.com/lixiang-share/p/5840444.html
Copyright © 2011-2022 走看看