什么是Resources System?
Resources System是Unity官方内置的一个资源管理系统,开发者可以将Asset资源放在一个或多个名为 Resources 的文件夹中,通过Resources System可以在Unity运行时加载或卸载Resource文件中的Objects
注:
Asset:Assets文件夹下的文件称为"Asset",Asset是存储在硬盘中的
Objects:Object是Asset的实例,也就是Asset的克隆,Object存储在内存中。
Resources文件夹中结构复杂,资源多会造成什么样的影响?
- 包体、内存增加,每个resource文件都会被编译到包体中
- 随着资源文件夹数量的增加,管理这些文件夹中的资产变得非常困难
- 资源文件夹的不当使用将增加应用程序的启动时间和构建的长度
- 游戏启动时间增加,在启动时,对Resources文件夹下的所有对象都需要进行Instance ID实例化,在大多数平台上用于查找的数据结构是平衡查找树,其时间复杂度为O(nlog(n)),因此,索引加载时间随Resources文件夹内Object数量增长而高于线性增长。
如何适当的使用Resources System
- 该内容在会在整个游戏生命周期存在
- monobehavior singeton
- loading prefab
- 序列化的配置数据
- ...
- 资源占用内存小
- 名字随机配置
- 默认头像icon
- 道具品质框
- ...
- 不参与热更新的资源
- 不会因为平台或者设备变化的资源