在很多类游戏的制作过程中,开发者都会考虑一个非常重要的问题,及如何在游戏运行过程中对游戏进行动态的下载和加载。为此,unity引擎引入了AssetBundle这一技术来满足开发者的上述需求,一方面开发者可以通过AssetBundle将游戏中的各类资源打包压缩并上传到网络服务器上,另一方面在游戏运行时可以从服务器上下载该资源,从而实现资源的动态加载。下面将对AssetBundle的使用和管理做详细介绍。
AssetBundle的工作流程大致如图所示
AssetBundle是unity引擎提供的一种用于存储资源的文件格式,它可以存储任意一种unity引擎能够识别的资源,例如模型、纹理、音频动画片段甚至整个场景。同时,AssetBundle也可以包含开发者自定义的二进制文件,只需将二进制文件的扩展名改为.bytes,unity即可将其识别为TextAsset,进而可以被打包到AssetBundle文件中。
用户可以通过AssetBundle的UI的简单的脚本在unity中创建AssetBundle文件,unity提供了创建AssetBundle的API,即BuildPipeline.BuildAssetBundles。通过接口,开发者可以将编辑器中指定的Assets打包。
Unity提供了一个简单的AssetBundle的UI,用户可以快速的将Asset标记到AssetBundle中。在资源的inspector下方,如下图所示。