【技术小札】那些你与AssetBundle的爱与恨...

  • 时间:
  • 浏览:1

其他种生活法律法律辦法 的具体区别可先参考《你应该知道的AssetBundle管理机制》中的“AssetBundle加载进阶”每种。

用Unity 4.x 的 Push/Pop 是可可不还都可不能能可不还都可不能能 抽出相同的资源,而且 据让我们我们我们 所知该法律法律辦法 在Unity 5.x 中也受用。根据Unity 5.x新的打包机制,若果把相同资源的 AssetBundle Name 设置好,打包时就会自动抽出来。

Unity 4.x 系列中各个版本 AssetBundle 是不兼容的,高版本加载低版本全部一定会意味着着再次再次出现疑问,很多很多一旦版本改动(怪怪的是跨了大版本的改动,如 Unity 4.3 到 Unity 4.5 意味着着Unity 4.5 到 Unity 4.6 等等)全部一定会前要重新打包 AssetBundle 的。

Q3:意味着着先Destroy Prefab ,而且 将Prefab中用到的AssetBundle再进行Unload,另一多少 的顺序是是否会有疑问 ? 我在手机上测试时发现另一多少 做内存中就会时不时指在,不释放;意味着着反过来, 就可可不还都可不能能可不还都可不能能 释放。另外,我是在Destroy 的以后调用的Resources.UnloadUnusedAssets();,请问这会影响最终的结果吗?

Q2: 让我们我们我们 在使用Unity 4.3.4开发项目的过程中会遇到锁屏后主守护程序运行运行卡死的疑问,而且 让我们我们我们 考虑将Unity版本降至4.1.2,而且 意味着着以后用Unity 4.3.4版本打包的资源比较多,很多很多想咨询下有越来越 法律法律辦法 可可不还都可不能能可不还都可不能能 用Unity 4.1.2 加载 Unity 4.3.4 打包出的AssetBundle?

Q4: 让我们我们我们 将Shader中放了Resource的目录下,也已加到Editor的GraphicSetting里,也试过在加载一多少空的Prefab时绑定对应的Shader。 但该Shader在Editor里无法正常显示,看运行时指向是有的,重新指一下就能显示了, 然而打包以后在手机上显示正常。

意味着着我有相同的资源,理论上它会在其他个包里各存一份,另一多少 就造成了包体过大。很多很多很多很多越来越 法律法律辦法 把共享资源做成依赖项单独打包,另一多少 话语每个场景就不用过大了。Unity 5.x的BuildAssetBundles打包机制是是否和Unity 4.x不一样?另一多少 的打包机制意味着着被剔除哪年?

但除了每个文件多生成的 Manifest 以外,根目录下一定会有一多少与根目录同名的AssetBundle 以及 Manifest 文件,通过运行时加载其他 AssetBundle,可可不还都可不能能可不还都可不能能 得到一多少 AssetBundleManifest 对象,而且 就可可不还都可不能能可不还都可不能能 通过其他 对象得到AssetBundle直接的依赖关系。

Q5: 让我们我们我们 在UWA上进行了性能测试,发现安卓上同步加载AssetBundle资源会非常耗CPU, 很多很多近期对资源加载法律法律辦法 做了比较大的调整,绝大每种的资源使用异步加载的形式。 不过这里有个疑问想咨询下: AssetBundle.LoadAsync 和 WWW加载法律法律辦法 都可可不还都可不能能可不还都可不能能 用来异步加载AssetBundle, 而且 两者API特点就是同, 目前看WWW更耗内存其他, 请问其他种生活法律法律辦法 更建议使用哪本身生活 ?

Q1:Resource的场景下有一多少场景Scene1.unity和Scene2.unity。我要对有有哪些文件进行打包,生成了

Q6: 现在生成AssetBundle的以后每个文件会多生成一多少Manifest文件,其他 文件也前要一起随着AssetBundle上传吗,在资源加载的以后具体为什么用呢?

这确实 是Unity已知的一多少疑问,Android 和 iOS 的每种Shader在打包后,在Editor 下无法正常显示。 主要意味着着是在打包时,只会把对应平台的Shader预编译代码(如 gles )打入包中,而且 在 Editor 下会执行失败(通常 Editor 是 d3d 驱动)。 而且 ,目前可可不还都可不能能可不还都可不能能 尝试在Editor下重新指定Shader来绕过其他 疑问。

每个文件多生成的Manifest 文件是不前要上传的,其作用就是供开发人员查看AssetBundle 中的依赖关系等信息。

AssetBundle.LoadAsync 是在获取了 AssetBundle 对象以后加载其中的资源的;而 WWW 加载是在获取 AssetBundle,两者的作用是不同的。

开发者意味着着是希望了解异步加载 AssetBundle 的多少 API 之间的区别,相关的接口如下:



原文出处:侑虎科技

转载请与作者联系,一起请务必标明文章原始出处和原文链接及本声明。

确实 意味着着指在其他 情况,在 Resources.UnloadUnusedAssets(); 时,意味着着还越来越 进行AssetBunlde的Unload 操作,越来越 从AssetBunlde中加载的资源依然会意味着着被AssetBunlde引用而无法被卸载。 开发团队可可不还都可不能能可不还都可不能能 尝试 Destory 后做 AssetBunlde的Unload,最后进行 Resources.UnloadUnusedAssets(); 。