Unity工程資源提取其實還是很方便的,網上也有很多相關介紹,比如雨凇就專門寫了一遍關於破解Unity資源的文章(http://www.xuanyusong.com/archives/3618),當然即使有傻瓜式教程,也難免會踩一些坑,下面記錄一下這兩天破解Unity資源的工程。
一.disunity
disunity是一款開源項目,java語言寫的,輕量級,傳言簡單易用,然而並不好用,
1.disunity5.x版本命令如何嘗試都不成功,總是報出如下問題:
2.disunity3.x 使用還是比較順利的,但是並沒有破解完全,一部分貼圖並沒有被提取出來,而且每張貼圖有很多mip圖集,總體破解結果並不好。
如破解結果:
二.UnityAssetsExplorer
這個工具也可以順利提取資源,但是使用也挺方便,但是提取的資源也不是十分令人滿意。不過最新版本據說支持Unity5.x,具體沒繼續嘗試了。
三. Unity Studio
Unity Studio十分強大,可以在直接預覽資源,但是導出的貼圖文件時dds格式,而且導出的貼圖是“倒的”,兩個難點:dds轉png或者jpg 、 把圖片反轉。
使用方法十分簡單,只要File—>選擇解壓包目錄assets\bin\Data就可以了,之后就可以看到資源列表了:
之后就可以導出資源了,Unity Studio導出的貼圖是dds格式,需要轉換其他格式,這里推薦DDS Converter,使用也很簡單,但是,但是,但是……轉換后的貼圖竟然是倒着的
這里就有第二個問題,處理圖片倒位問題,這里似乎就沒什么工具可以用了,不過簡單思考一下也可以找到解決辦法。既然圖片是倒的,那只需要把像素點上下反轉一下就可以的,按照這個想法就用c#寫了一個簡單的工具,也就實現了正常的圖片,貼一下代碼:
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); } } }
處理完上面的問題,貼圖就算基本正常了,如圖:
哈哈,到這里資源提取就算基本成功了,但是……還是有個問題,就是alpha通道丟失了,想了很久並沒有找到解決辦法,只能用ps摳圖了,汗……如果有大神有辦法完美解決這個問題,還請留言賜教一下哈
附上dds轉換工具和Unity Studio 工具下載:http://files.cnblogs.com/files/lixiang-share/UnityResTools.zip