AssetBundle对象

    作者:匿名更新于: 2021-10-19 17:30:16

      资源已经打包成了资源包,如果想在游戏中使用资源包中的内容,需要先装入资源包到内存中,然后解压该资源包,获得资源包中包含的部分资源。

      1.有关项目的建议。

      因为之前文章中讲述了加载方式都有各自的使用情况和特点,所以建议按照下列情景在我们的项目中使用这些方法: 

     

      随游戏一起发布新的文件夹:

      l 打包时,可以将LZ4压缩格式打包。

      l 该方法在运行时需要加载对象。

      其优点是:

      l 可以将文件进行压缩,又能兼顾加载速度并节省内存。

      l 要求以更新包形式从服务器端下载。

      l 当使用包时,使用默认的格式压缩。

      l 下载缓存软件包的方法。

      其优点是:可获得最大的压缩率,并可在下载期间减少数据传输量。与此同时,在本地磁盘创建缓存后,还可以考虑加载后的速度,并节省内存。

      自行加密:当运行时需要装入对象时,可以使用方法装入,这个使用场景也只有对象是通过使用流数据从内存载入的。

      对于生成的包文件,我们也可以使用第三方库或者工具压缩,如果需要的话,我们最好不要再使用,所以在打包时选择打开,方法在运行时需要加载对象时进行异步加载。

      2.加载和卸载资源。

      这一部分包括:

      l 将资源从对象装载。

      l 卸载资源。

      2.1.从对象装载资源:API名加载和卸载的新旧版本的API名有所改变,但机制没有什么改变。

      从对象中装载资源在旧版本4.X中所用主要包括以下几个:

      l 从包载入指定的资源。

      l 装入当前资源包中的全部资源。

      l 异步从资源包加载资源。

      新版本的中,装入资源变成了几个:

      l 从资源包载入指定资源。

      l 装载当前资源包中的所有资源。

      l 异步从资源包载入资源。

      2.2卸载资源。

      l 对资源卸载部分没有什么改变,仍然使用Unload方法。

      l 无读取:这个方法卸载运行时内存中包含在包内的所有资源。

      l 如果传入参数为true,那么内存中包含的资源不仅是AssetBundle对象。基于这些资源实例化后,游戏中的对象也被销毁。

      l 如果传递的参数,就会销毁对象在内存中包含的资源。

      此外,还提供了资源冗余预警机制,比如上文中带有的案例的资源出现在多个中,小编需要分别对该资源进行分组。

        >>>>>>点击进入游戏开发专题

课课家教育

未登录