简介
资源加载主要需要注意以下几点:
- 资源加载时的缓存,停止,恢复
- 资源加载时的处理
- 资源加载未完成与未完成时的处理
资源加载时的恢复与暂停以及缓存
项目中使用的工具BulkLoader,该工具提供了一系列基础的资源加载操作,资源的加载,暂停,缓存,是否加载成功或失败等。这并不是这篇文章所讲述的重点,本文主要是讲述基于这些基础操作之上的一些封装。
资源加载的相关处理
资源路径
项目中所使用的资源种类繁多,如果每加载一个资源都需要去寻找,无疑是是否浪费时间的,所以,我们应当在文件或者其他位置中记录每个资源的文件,然后根据需要加载的文件名在常数时间内确定路径。
也就是在程序中使用hash结构存储文件名-路径。本文中这些数据都存储在 runTimeList 中。
优先级处理
游戏中需要加载的资源很多,那么就要对加载资源的优先级进行处理。
本文中主要将资源加载方式分为以下几种:
- 队列加载
- 动态加载(带优先级参数)
- 静默加载
其中,队列加载时同时加载的一系列文件,该操作也是优先级最高的,适用于游戏运行必须得资源。动态加载则是用来加载游戏中非必须得可替代的或需要用到时再加载的资源。静默加载则是在队列加载和动态加载无任务时,才进行加载的资源,主要是用来加载一些不重要或较大的资源来改善游戏体验。
接下来再讲一讲三种加载方式之间优先级的实现方式,其中,动态加载的优先级参数是BulkLoader内部实现的,这里就先不讲了。
实现的思路很简单,就是保证这三种操作的加载顺序,比如在有队列加载的时候暂停动态加载和静默加载。 但有几点需要注意:
- 这三种操作所加载的资源可能存在重复的情况,防止错误的暂停
- 加载