Unity 3D:Asset Bundles vs. Resources文件夹vs www.Texture

Cat*_*ard 6 resources textures caching unity-game-engine assetbundle

所以,我已经在论坛上关于AssetBundles和Unity 3D中的Resources文件夹做了一些阅读,我无法找到解决我面临的问题的最佳解决方案.这是问题所在:

我有一个专为独立设计的程序,可以加载充满.png和.jpg图像的"书籍".每次程序启动时,页面都是相同的.在任何"书"的场景开始时,它使用www.texture和路径一次加载所有这些图像.但是,我现在意识到,这可能是一种在运行时访问内容的非高效方法 - 它很慢!这意味着当场景开始并且书籍的页面图像加载(在非传奇计算机上)时,用户不能做任何事情5-20秒.所以,我无法弄清楚这三件事中哪一件最快:

1)每本书加载一个资产包(比如20个纹理,每个1 MB).

2)每页加载一个资产包(每个1 MB).

3)前两个选项中的任何一个,但从resources文件夹加载.

哪一个会更快,为什么?我知道资产包是由统一打包的,但这是否意味着里面的纹理会在加载时被预压缩并更容易在内存中?资源文件夹是否会减少加载时间?是什么赋予了?据我所知,资源文件夹加载到缓存中 - 但它是独立播放器正常使用的缓存吗?或者是这个额外的,未使用的空间?我想另一个问题是我不确定从内存加载东西和将它们存储在缓存中之间的区别.

干杯,伙计......

Jer*_*nay 9

资源文件夹是捆绑的托管资产.这意味着它们将按照您在IDE中应用的设置由Unity压缩.因此,它们在运行时加载是有效的.您可以为每个平台定制压缩,这应该进一步优化性能.

我们花费大量资源使用Resources.Load()来提取资产,它在桌面和移动设备上都表现良好.

还有一个名为StreamingAssets的特殊文件夹,可用于放置捆绑的非托管资产.这是我们在运行时放置我们想要播放的视频的地方,但不希望Unity将它们转换为默认的ogg编解码器.在移动设备上,这些在原生视频播放器中播放 您还可以将图像放在那里,加载它们就像使用WWW类一样.慢,因为Unity需要在加载时清理和压缩图像.

如上所述,由于处理资产的开销,加载WWW较慢.但是您可以从服务器或应用程序"沙箱"外部提取数据.

  • 仅当用户忙于浏览每本书的第一页时,才加载您需要显示的内容并实施后台进程以获取其他内容.这样可以避免阻塞UI太长时间.
  • 优化图像以减小文件大小.如果您需要透明图像,请使用tinypng,或坚持使用压缩JPG
  • 尽可能使用Power of 2图像.这应该可以加快运行时处理速度.

ATH.

  • AssetBundles就像是在运行时从外部加载的Resources文件夹.您可以从本地源或服务器加载捆绑包.加载后,您可以访问其资产,就像在Resources文件夹中编译时捆绑的资产一样.AssetsBundles非常适合在运行时减少已编译的应用程序大小并加载动态内容(最有可能来自服务器),以确保用户拥有最新的资产. (2认同)