添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
大气的足球  ·  Photoshop ...·  2 月前    · 
活泼的猕猴桃  ·  当使用 Qt C++ 编写 ...·  5 月前    · 
酷酷的羊肉串  ·  “JavascriptException: ...·  1 年前    · 

Unity AssetBundle 分割与合并 - 狂飙 中介绍了一种分割后合并 AssetBundle 的方法,但在实际使用时存在启动时合并操作过于耗时的问题,即便后续优化为只合并必要文件,剩余文件在线程中合并,也还是会有五秒左右的耗时。

其实换个思路, AssetBundle.LoadFromFile 支持 offset 参数,因此可以将不同的 AssetBundle 合并到一个地方,在读取的时候增加对应的 offset 即可。

与上述文章类似,可以按照随机顺序多个不同的 AssetBundle 合并为一个文件,并记录下相关信息。

读取打包时产生的信息文件,生成运行时需要的字典,然后在读取 AssetBundle 前查表找到对应的 offset 值,传递给 AssetBundle.LoadFromFile

这种单纯合并的方法要比分割后再合并的方法好:去除了无用的运行时文件 IO 操作,直接去除了无用的合并文件耗时;大幅减少了文件数量。

在 iOS 设备上实际测试时读取文件没有性能下降,一切与未合并时一致。