给 AssetBundle 打补丁
给 AssetBundle 打补丁就如简单地下载一个新的 AssetBundle 然后替换已存在的。如果 WWW.LoadFromCacheOrDownload or UnityWebRequest 被用来管理应用已缓存的 AssetBundle,这个过程就是给所选的 API 传递不同的版本号一样简单。(可以参考上面的脚本参考链接来查看更多详情。)
更困难的问题是解决补丁系统探测哪个 AssetBundle 需要被替换。一个补丁系统需要两个信息列表:
学习、思考、分享
给 AssetBundle 打补丁就如简单地下载一个新的 AssetBundle 然后替换已存在的。如果 WWW.LoadFromCacheOrDownload or UnityWebRequest 被用来管理应用已缓存的 AssetBundle,这个过程就是给所选的 API 传递不同的版本号一样简单。(可以参考上面的脚本参考链接来查看更多详情。)
更困难的问题是解决补丁系统探测哪个 AssetBundle 需要被替换。一个补丁系统需要两个信息列表:
这是 Unity 5 [资产, 资源和资源管理系列文章] 的第五篇。(译者注:原文太长,我拆分成了两部分,这是第一部分。)
上一篇文章涵盖了 [AssetBundle 基本知识],特别是多种加载用的 API 的底层行为。这篇会讨论真实使用 AssetBundle 碰到的问题和可能的解决方案。
在性能要求高的环境中,要特别严格地,小心翼翼地控制加载的对象的数量和大小。当对象从当前场景中移除时,Unity 不会自动的卸载他们。资产的清理是在特殊的时间触发,当然它也可以手动来触发。
AssetBundle 必须要仔细的管理。来自本地存储文件的 AssetBundle(不管是从缓存或者是通过 AssetBundle.LoadFromFile加载的) 会有最小内存开销,一般不超过 10-40 kb。当存在大量 AssetBundle 时,这种开销仍然可能成为问题。
大多数项目都允许用户对内容再次体验(比如重新玩一个关卡),知道什么时候加载和卸载 AssetBundle 是很重要的。如果一个 AssetBundle 被错误卸载,可能会引起内存中对象重复。错误卸载也可以在某些情况下引起不希望的结果,比如引起纹理丢失。要理解为什么这个会发生,请参照 [资产,对象和序列化] 章节的 内部对象引用 小结。
要理解何时去管理资产和 AssetBunle,最重要的是理解调用 AssetBundle.Unload 的不同行为,不管其参数是 true 还是 false.
这是 Unity 5 [资产, 资源和资源管理系列文章] 的第四篇。
这篇将会探讨 AssetBundle,并介绍构建 AssetBundle 的基本系统和与它交互的核心 API。这篇文章也会特别地介绍 AssetBundle 和 AssetBundle 内的资产与对象的加载和卸载。
更多关于 AssetBundle 的使用模式和最佳实践,请看本系列文章中的下一篇。
AssetBundle 系统提供了一种可以把一个或者多个文件存储到一个能被 Unity 识别的存档的方法。这个系统的目的是提供一个可以和 Unity 的序列化系统兼容的数据推送方法。AssetBundle 是 Unity 用来在应用安装后推送或者更新非代码内容的主力工具。开发者能够用它来减少资产的体积,缩短运行时内存压力,以及在不同的用户终端有选择的加载内容。
Goodbye 2016, Hello 2017 ~~ 愿新的一年打败各种 BUG~~
这是 Unity 5 [资产, 资源和资源管理系列文章]的第三篇。
这个章节将讨论 Resources 系统。这个系统可以让开发者通过 Resources API 加载或卸载存储在在一个或多个以 Resources 命名的文件夹中的资产。
下面情况不要使用它
这是深度探讨 Unity 引擎中资源(Resource)和资产(Asset) 管理的系列文章。文章试图给高级开发者提供 Unity 资产和序列化系统的底层、代码级的知识,并且审视 Unity 的 AssetBundle 系统技术基础和当前使用它们的最佳实践。
系列文章将会拆分为四个章节:
注意:这系列文章中的对象和资产有别与 Unity API 命名约定中的对象和资产。