Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(197评价)
价格: 4431.00元
关于Ocean老师《Unity商业游戏底层资源加载框架》中的疑问
Unity322455发起了问答2018-12-24
3
回复
572
浏览

问题来自于这样的一段代码,课程中开始时老师 用Resources.UnloadAsset(item.m_Obj)来卸载资源,发现不行,于是用了Resources.UnloadUnusedAssets();这个方法,我经过查找发现Resources.UnloadAsset这个方法只能写在非游戏物体和组件的资源。但是我用这个方法是发现有资源泄漏的问题,于是转而使用Resources.UnloadUnusedAssets()。现在的问题是:

1.老师为什么把这段清理资源的代码用#if只在编辑器下释放,难道打包之后就不需要释放资源了?

2.Resources.UnloadUnusedAssets()这个方法十分消耗性能,Unity会检查堆栈资源标记,如果释放小资源也用这样的方法,会是性能大幅度降低。是否存在很好的解决方案?

所有回复
  • 老师_Ocean 2018-12-24

    1,這段代码只是解决编辑器下资源释放,走AB的会正常释放不会存在问题

    2,这段代码你把Resource.UnloadAsset 后面加上item.obj=null

    3,这个只是编辑器,所以没有考虑太多性能,老师直接用了resource.unloadunusedassets,并且后面有课程会讲解其中的问题

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • 老师_Ocean 2018-12-24

    老师在演示资源加载的时候演示ab包加载的时候并不会存在资源没释放的问题,你可以再去查看下老师的那个演示课程

    还有-4条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!