您当前的位置: 首页 >  unity

程序员正茂

暂无认证

  • 2浏览

    0关注

    283博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Unity内存优化

程序员正茂 发布时间:2020-02-14 11:44:43 ,浏览量:2

在Unity中经常需要动态创建和销毁物体,动态加载纹理等。但是当动态加载资源的数量较多时,虽然有些资源已卸载(Destroy(this.gameObject)),但其实仍然在内存中,运行一段时间后Unity就会报内存不够的错误。

解决方法:

1.销毁不需要的资源,调用Destroy()函数。如Mesh、Matierial、GameObject等。

2.在Update()函数中调用Resources.UnloadUnusedAssets()。建议不要调用过于频繁,每次在完成资源销毁后再调用。

 

Resources.UnloadUnusedAssets的作用是卸载未使用的资源。

确定资源是否在使用是遍历所有对象(GameObject),如果所有对象和脚本都未涉及到某个资源,那么该资源就视为未使用。还会检查静态变量

但是,脚本执行堆栈不会被检查,所以脚本中引用的资源将会卸载,如果需要,在下一次使用其属性或方法会被加载回来。这需要对在内存中被修改的资源进行额外的关注。 在触发资源垃圾收集之前,请确保调用EditorUtility.SetDirty。

关注
打赏
1660743125
查看更多评论
立即登录/注册

微信扫码登录

0.0365s