Resource文件夹,用于在运行时加载资源。使用以下方式加载,简单方便。
Resource.Load<type>("xxx")
但是尽量不要使用它,
1:它使内存管理变得困难;
2:不恰当的使用Resource文件夹,会增加程序启动时间和打包时间;
3:降低了工程中的内容转换到特定平台的能力,使内容更新困难
适当的使用它:
1:实现性或者设计原型,也就是demo级别的 可以使用,因为它方便;如果一个工程移动到另一个完整的工程,那就不要使用Resource了;
2:处理一些琐碎细小的东西可以使用,比如
1.不会占用太多内存 |
2.资源会贯穿程序的整个生命周期 |
3.资源不会经常更新修改,打补丁 |
4.资源不会因为平台或者设备不同而不同 |
情况2包含比如一个含有单例模式的MoneBehaviours的perfer,或者包含第三方插件的配置表,比如facebook ID、序列化Resource。
在Resource文件夹下的文件,在打包的时候会被整合到一个文件中,里面包含了元数据和索引信息,跟AssetBundle很像。索引信息包含了序列化的查找树(用来将名字分解成适当的GUID和本地ID),也用来索引这个Object。
查找树的数据结构是一个平衡树,它的效率是O(NLog(N)),N是这个Object在树中的索引。这种级别的增长,导致Resouce中文件越多,索引时间越长。
这个过程在程序启动时进行的,初始化Resouce下10000个资源,在较低端配置的手机上要耗费许多s,尽管这些资源在第一个场景中很多不会用到