众所周知,在UE4引擎中,如果要用到runtime下加载资源,通常会采用pak文件的形式进行下发,这种方式的好处就是,第一,压缩体积较小;第二,可以将相互依赖的资源文件压缩成为一个物理文件来方便逻辑加载;第三,可以进行加密处理,防止模型文件被抓取。这也是Unreal官方推荐的方式。
制作pak的流程就是可以简单的理解成为将一个关卡中所有的资源文件,包括地图关卡打包成一个压缩文件的过程。该过程可由一个程序插件来自动化实现。然后程序在runtime时候,进行下载这些pak文件,进行动态加载。
本文将要讲述的是在iOS平台下读取pak所遇到的一个坑。
1.PAK 我们将制作出的pak通过http下发到Windows环境下的程序中,可以很完美的动态加载出来所需要的场景。然后将此种逻辑同样放在iOS平台下则一直crash。经过多次debug测试得出结论,经过windows环境cook过的pak是不能再ios平台上运行的。
2.cook
所以我们得出,iOS平台上要用的pak 必须是经过iOS cook过的pak。经过测试解决了crash的问题。可以很完美的在iOS上动态加载出来和windows上一样的场景了。
可以得出。UE4的跨平台并不是资源文件跨平台。不同的平台对资源(pak)均需进行cook(资源文件格式转换)。在这里Mark一下。
最后把写的制作PAK的插件源码地址放一下:点击这里
最后把