mac上从.ipa中提取unity3D游戏资源说明

0
回复
275
查看
[复制链接]

TA在排名榜Top100

积分:NO. 1 名

发帖:NO. 1 名

在线:NO. 1 名

249

主题

263

帖子

2307

胡萝卜

淘吉兔

发表于 2019-3-18 03:34:04 | 显示全部楼层 |阅读模式
Unity3D资源,但是我在Mac上从来没有成功过,一直在报错。
记得要在MAC上装好下载mac os
接着找一个Unity3d做的游戏,这里我在补充一下如何辨认某个游戏是用u3d做的。
1.在网上随便下载一个游戏.ipa,并且解压到本地。
2.找到xxx/xxx.app,右键显示包内容,打开Data文件夹。
3.如果发现文件夹中包含 unity default resources 文件,那么恭喜你这个游戏就是用unity3d做的。

再看看这里几个比较重要的文件。
level0 / leve1 ….   图中0-5一共有6个文件,这表示这个游戏用了6个游戏场景。
sharedassets0/sharedassets1 …. 图中0-6一共有7个文件,它的数量永远比场景的数量多一个,可见它和场景有关联性,可以用工具把它解开看看。
Managed:这个文件夹下放的都是dll ,unity自己写的脚本编译成dll后就放在这里,还有其他第三方的dll也放在这里。
resources.assets:这个东西就比较重要了,他游戏里面所有放在resources文件夹下的东西都会放在这里,我们提取也主要在这里提取。
Raw:如果游戏在StreamingAssets文件夹下放东西,那么就会出现一个Raw文件夹。
PS:我个人觉得最好不要在StreamingAssets文件夹下放东西,因为ipa一解开就能看到里面放的啥东西了。如果真的要放,我觉得最好不要放.assetbundle 文件。 因为你需要用www.LoadFromCacheOrDown 这样第一次它会把StreamingAssets下的assetbundle 解压到本地的cache文件夹中,那么StreamingAssets文件夹又是一个只读的文件夹,也就是说你只能读取不能删除,结果就会造成容量过大  因为 解压后的文件 和没有解压的文件都保存在本地。。 所以assetbundle最好直接从服务器上下载,那么这样本地就不会多出来一个assetbundle。
回到正题,说说怎么提取资源。

先把DisUnity3.0版本下载到本地然后解压。 确保本地装了jdk7以后打开终端运行。
java -jar /Users/MOMO/Desktop/disunity_v0.3.0/disunity.jar  extract /Users/MOMO/Desktop/Data/resources.assets
一个是disunity.jar的路径,另外一个是resources.assets的路径,根据你电脑的路径来配置就可以了。 嘿嘿嘿各种资源就呼呼呼的解开啦。。如下图所示,它会在resources.assets的同级目录自动创建一个resources的文件夹。
AudioClip:这里是解开的游戏全部声音文件,可以直接播放。
Mesh:这里解开的游戏全部模型文件,他的格式是.obj 你需要在3dmax或者maya中打开,然后转成FBX就可以在u3d里面看到了,嘿嘿。
Shader:这里解开游戏 全部用的shader文件,可以直接使用。
TextAsset:这里解开的是游戏中全部用的text文本文件,如果文本不加密,这里就全都会看到的
Texture2D:这里放的就是游戏中用到的所有图片,一般是由tga或者 ktx组成,tga可以直接在电脑上查看,但是.ktx需要借助工具来看。

这里我把Hello Hero这个游戏的图集解开了。如下图所示,这是它用的一个UI图集。

但是模型的贴图怎么解开呢?HelloHero的所有模型贴图都是.ktx格式的。
我们首先要下载一个神一样的工具,


下载 PowerVR Tools & SDK v3.3 – MacOS X Installer
下载以后需要安装,安装的时候有一个打开文件的类型,你可以勾选一下.ktx
安装完以后,运行文件的路径很深
/Applications/Imagination/PowerVR/GraphicsSDK/PVRTexTool/GUI/OSX_x86
双击打开就可以。如下图所示,把ktx的图片拖进来就可以看到它的原图了。。
打开.ktx的图以后,可以在把它导出成可以直接在电脑上预览的图片了。。嘿嘿嘿嘿,是不是很简单哈?

我在补充一下, 这两个工具都是跨平台的, windows linux mac都可以使用的。
我在补充一下,如果你解开的哪个游戏里面没有resources.assets 那么有可能它游戏里面 没有Resources这个文件夹。有可能它是通过assetbundle下载的。。
java -jar /Users/MOMO/Desktop/disunity_v0.3.0/disunity.jar  extract /Users/MOMO/Desktop/Data/*.assets
你可以执行,把所有的.assets都解开。因为有些东西他可以预制在场景里面,不需要通过Resources.Load。
你最好在反编译一下它的代码, 看看它的assetbundle的下载地址是多少。。


大家试试下面的方法,把KTX批量转成PNG。。。
BlueEffie
终于实现了批量转换,要先把ktx转换成pvr,然后在转换成png
@echo off
path %path%;”D:\Program Files (x86)\TexturePacker\bin”
path %path%;”D:\Program Files (x86)\PVRTexTool\CLI\”
for /f “usebackq tokens=*” %%d in (dir /s /b *.ktx) do (
PVRTexToolCLI.exe -f PVRTC1_4_RGB -i “%%d” -o “%%~dpnd.pvr”
TexturePacker.exe –opt RGBA8888 –sheet “%%~dpnd.png” “%%~dpnd.pvr”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

热门推荐

更多+

最新信息

更多+
专注游戏源码-视频教程免费分享
全国免费热线电话

85256916546

周一至周日9:00-23:00

反馈建议

taojitu@yeah.net 在线QQ咨询

扫描二维码加入微信群

Welcome TAOJITU© 2013-2019 ( 沪ICP备17025587号 )|网站地图