Unity资源加载以及释放
来源:互联网 发布:js push json 编辑:程序博客网 时间:2024/05/29 16:05
1.系统在加载新场景时,所有的内存对象都会被自动销毁,但是不包括assetbundle文件自身的内存镜像,因为该assetbundle镜像是非托管的。
2.同一个assetsbundle文件在没有释放之前不能重复加载。
3.Destroy 主要用于销毁克隆的对象,不会自动释放该对象的所有引用。
4.AssetBundle.Unload(false)释放AssetBundle文件内存镜像。
5.AssetBundle.Unload(true)释放文件内存镜像同事销毁所有Load的Assets内存对象。
6.Resources.UnloadAsset(Ojbect)。释放非Component组件的资源(如贴图、音效、材质球等)
7.Resources.UnloadUnusedAssets。释放所有无引用的资源对象,哪怕有一个引用指向该资源对
象,也无法释放(如需要释放的资源为b, Object a = b 因为a引用了b 所以释放b不成功)。
8.GC.Collect()强制立即释放无效引用垃圾。固定时间调用一次。
9.第一次Instaniate一个Prefab会卡的原因是该Asset对象还未创建在内存中,即使你Destroy该对象,但该Asset还存于内存中,下次创建会快很多,除非释放该内存对象。
10.AssetsBundle加载资源,会有两份内存的消耗,一份是Assets镜像本身,一份的克隆出来的Assets镜像,该克隆出来的镜像用于反复多次克隆,但不会消耗额外的第三份内存,所以在LoadAssetsBundle的时候根据情况如无需重复克隆该对象最好释放一下Unload(fasle)该镜像本身的内存,这样内存中只存在一份这样的内存节省了大量内存。
11.PC端本地加载AssetBundle,必须在URL 前 加 "file://",而且 还需要后缀名。
例如,"file://+Application.dataPath+"/test.assetbundle"
12.可通过几种方法转换AssetBundle
www.assetBundle 直接获取AssetBundle
AssetBundle.LoadFromMemory(www.bytes) 将byte数组同步加载成AssetBundle
AssetBundle.loadFromMemoryAsync(www.bytes) 将byte数组异步加载成AssetBundle,异步加载AssetBundle不推荐使用,在yield return等待结束后 返回的结果都可能为还没加载成功。
阅读全文
0 0
- Unity资源加载以及释放
- Unity 资源加载释放相关
- Unity资源加载与释放
- Unity 3D 资源的加载与释放
- 【Unity】Unity资源池的动态加载释放和内存优化处理
- Unity 加载数据库资源
- Unity资源加载
- unity资源加载
- Unity中内存资源释放总结
- Unity动态加载远程资源
- unity动态加载远程资源
- unity动态加载远程资源
- Unity利用Resources加载资源
- Unity中的资源加载方法
- Unity动态加载远程资源
- Unity 避免重复加载资源
- unity 资源加载框架设计
- unity AssetBundle 加载资源 笔记
- Java基础知识
- 查找字段在数据库中的那个表 mysql
- HashMap的实现
- AngualrJs 最新 文件图片上传教程5:Client-css Client-config
- LeetCode问题解答:19. Remove Nth Node From End of List
- Unity资源加载以及释放
- 强制横屏或竖屏
- ndroid中View.inflate()
- Java面向对象(四)final关键字
- Linux+C+动态库(*.so文件)
- DbComparisonExpression需要具有可比较类型的参数。
- Ajax接收Java服务端发送的text数据(用户名检查)
- @Column 大小写
- android下如何把触摸屏的驱动动态加载