问题来自于这样的一段代码,课程中开始时老师 用Resources.UnloadAsset(item.m_Obj)来卸载资源,发现不行,于是用了Resources.UnloadUnusedAssets();这个方法,我经过查找发现Resources.UnloadAsset这个方法只能写在非游戏物体和组件的资源。但是我用这个方法是发现有资源泄漏的问题,于是转而使用Resources.UnloadUnusedAssets()。现在的问题是:
1.老师为什么把这段清理资源的代码用#if只在编辑器下释放,难道打包之后就不需要释放资源了?
2.Resources.UnloadUnusedAssets()这个方法十分消耗性能,Unity会检查堆栈资源标记,如果释放小资源也用这样的方法,会是性能大幅度降低。是否存在很好的解决方案?
1,這段代码只是解决编辑器下资源释放,走AB的会正常释放不会存在问题
2,这段代码你把Resource.UnloadAsset 后面加上item.obj=null
3,这个只是编辑器,所以没有考虑太多性能,老师直接用了resource.unloadunusedassets,并且后面有课程会讲解其中的问题