1、Resources重复加载资源会浪费内存吗
Resources在加载一次资源过后,该资源就一直存放在内存中作为缓存,第二次加载时发现缓存中存在该资源,会直接取出来进行使用,所以多次重复加载不会浪费内存,但是会浪费性能(每次加载都会去查找取出,始终伴随着一些性能消耗)
2、如何手动释放缓存中的资源
(1)卸载指定资源
// obj:卸载对象资源
Resources.UnloadAsset(obj)
---------------
Texture tex = Resources.Load<Texture>("Texture/testJpg");
Resources.UnloadAsset(tex);
注意:该方法不能释放GameObject对象,因为它会用于实例化对象(即使没有实例化也不能卸载),只能用于一些不需要实例化的内容,比如图片、音效、文本等,一般情况下,很少使用这个API
(2)卸载未使用的资源
Resources.UnloadUnuseAssets();
// 一般和GC一起使用
GC.Collect();
注意:一般在过场景时和GC一起使用