【Unity】AssetBundle打包

介绍

AssetBundles允许按流的方式从本地或远程加载资源。使用AssetBundles,资源可以存储在远程服务器,必要的时候可以访问,这增加了项目的灵活性和减少初始包体的大小。

这篇教程将会介绍AssetBundles和讨论它们是如何工作的以及工作流的步骤和如何去指定资源要打成AssetBundle,什么时候如何使用AssetBundle变体,如何打包和测试AssetBundles和变体。所有的这些内容都是使用AssetBundle管理器去简化创建、测试和部署AssetBundles。本文的最后章节将会涉及加载和使用AssetBundles的特例和AssetBundle变体的简单使用和示例代码。

示例项目

在开始阅读文章之前,最后去下载这个AssetBundle管理器项目。

什么是AssetBundle?

AssetBundlesUnity编辑器在编辑时创建的文件,这个文件可以被打包项目运行时使用。AssetBundles可以包含资源,比如模型、材质、图片和场景。AssetBundle不能包含脚本。

具体来说,AssetBundle是项目的资源或场景的集合保存成压缩文件的格式,目的是可以被打包后的程序分开加载。AssetBundle可以被Unity构建的游戏或项目加载。这些内容允许流和异步加载,比如模型、图片、音频甚至整个场景。在首次运行应用的时候,可以将AssetBundle进行预缓存,本地保存以保证更快的加载速度。AssetBundle最主要的目的是从远程位置按流的方式加载。AssetBundle可以包含任何Unity支持的资源类型,包括自定义的二进制数据。唯一的一个特例是脚本资源。

AssetBundles有许多的用例。新的内容可以通过应用动态的加载和卸载资源。发布可下载内容是很容易实现的。这种方式可以减少包体的大小,首次安装后,需要用到资源的时候才会去下载资源。可以下载平台和设备的专用资源,而不需要下载和存储其他平台的冗余资源。通过下载和安装基于用户位置和语言和偏好所需的资源,这会使本地化变得非常容易。使用新的内容可以让应用程序修复、改变和热更,而不需要重新提交审核。

任何项目的资源组织成AssetBundles严重依赖于那个项目的需要。这里有几条基本的方法去了解AssetBundles

  • AssetBundles可以被整个下载和缓存
  • AssetBundles不需要整个加载
  • AssetBundles中的资源可以依赖其他资源
  • AssetBundles中的资源可以和其他资源共享依赖
  • 每个AssetBundles都有一些技术上的消耗,无论是文件大小还是需要管理的文件
  • 不同的平台打不同的AssetBundles

AssetBundles是整个下载的。如果一个AssetBundle包含了不是立即使用的资源,即使它们不一定加载进场景,它们也会占用下载带宽和磁盘空间。

你可能感兴趣的:(【Unity】AssetBundle打包)