Unity工程资源破解

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

    一.disunity

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

    1.disunity5.x版本命令如未尝试都不成功,老是报出以下问题:github

{KXT7_@3~(TKFOM1AD8IZZ8

     2.disunity3.x 使用仍是比较顺利的,可是并无破解彻底,一部分贴图并无被提取出来,并且每张贴图有不少mip图集,整体破解结果并很差。c#

BKJ0]]CL@_8F~}}UJGY46AP

      如破解结果:工具

){@QFG1}]2991B(2BU4S9IB

 

    二.UnityAssetsExplorer

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

 

    三. Unity Studio

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

使用方法十分简单,只要File—>选择解压包目录assets\bin\Data就能够了,以后就能够看到资源列表了:code

`Q9Q8M}UJJ6I9QTL6DTF$GX

 

以后就能够导出资源了,Unity Studio导出的贴图是dds格式,须要转换其余格式,这里推荐DDS Converter,使用也很简单,可是,可是,可是……转换后的贴图居然是倒着的orm

BG2E8C`MVTBC{$M7BWG]UJX

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

namespace WindowsFormsApplication1
{
    class HandleImage
    {
        static string loadPath = @"E:\NewProject\Test\rst\";
        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

相关文章
相关标签/搜索