推荐阅读
大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。
你的点赞就是对博主的支持,有问题记得留言:
一、前言
虽然从事Untiy那么久,有时资源加载这块的接口还是记的不是很清楚,今天博主就就跟大家一起整理记忆一下,主要是参考了Unity的官方文档。
二、资源加载及卸载
2-1、加载
加载:
Resources.Load:
加载app包内Resources/目录的一个asset;
Resources.LoadAsync:
Resources.Load的异步方法;
Resources.LoadAll:
类似Resources.Load,但是用于加载某目录下所有asset;
Resources.LoadAssetAtPath:
加载Asset/目录下的资源,只能用于编辑器模式,写打包工具时可能用到;
AssetBundle.CreateFromFile:
从磁盘加载一个AssetBundle,这是加载AssetBundle最快的方式;
AssetBundle.CreateFromMemory:
从内存中创建一个AssetBundle,异步方法;
AssetBundle.CreateFromMemoryImmediate:
AssetBundle.CreateFromMemory的同步方法;
AssetBundle.LoadAsset:
从AssetBundle中加载一个asset;
AssetBundle.LoadAssetAsync:
AssetBundle.LoadAsset的异步方法;
AssetBundle.LoadAllAssets:
加载AssetBundle中所有指定类型的asset;
AssetBundle.LoadAllAssetsAsync:
AssetBundle.LoadAllAssets的异步方法;
WWW.LoadFromCacheOrDownload:
从缓存或网络上下载后加载AssetBundle,不需担心设备空间不足;
卸载:
Resources.UnloadAsset(Object assetToUnload):
卸载指定的asset,只能用于从磁盘加载的;如果场景中有此asset的引用,Unity会自动重新加载它;
Resources.UnloadUnusedAssets:
卸载所有未被引用的asset,可以在画面切换时调用,或定时调用释放全局未使用资源;
AssetBundle.Unload(false):
卸载AssetBundle的压缩文件数据(文件内存映像);
AssetBundle.Unload(true):
卸载AssetBundle文件内存映像,并且释放所有已加载的asset;如果asset在场景中被引用,会丢失;
Object.Destroy:
销毁一个GameObject、组件或asset;并不是立即销毁,而是在Update循环之后,渲染之前;
Object.DontDestroyOnLoad:
标明一个对象在切换场景时不被销毁;
GC.Collect:
强制垃圾收集器立即回收内存,可以根据需要使用,比如切换画面调用或定时调用;
三、后记
博主还有跟多宝藏文章等待你的发掘哦:
专栏 | 方向 | 简介 |
---|---|---|
Unity3D开发小游戏 | 小游戏开发教程 | 分享一些使用Unity3D引擎开发的小游戏,分享一些制作小游戏的教程。 |
Unity3D从入门到进阶 | 入门 | 从自学Unity中获取灵感,总结从零开始学习Unity的路线,有C#和Unity的知识。 |
Unity3D之UGUI | UGUI | Unity的UI系统UGUI全解析,从UGUI的基础控件开始讲起,然后将UGUI的原理,UGUI的使用全面教学。 |
Unity3D之读取数据 | 文件读取 | 使用Unity3D读取txt文档、json文档、xml文档、csv文档、Excel文档。 |
Unity3D之数据集合 | 数据集合 | 数组集合:数组、List、字典、堆栈、链表等数据集合知识分享。 |
Unity3D之VR/AR(虚拟仿真)开发 | 虚拟仿真 | 总结博主工作常见的虚拟仿真需求进行案例讲解。 |
Unity3D之插件 | 插件 | 主要分享在Unity开发中用到的一些插件使用方法,插件介绍等 |
Unity3D之日常开发 | 日常记录 | 主要是博主日常开发中用到的,用到的方法技巧,开发思路,代码分享等 |
Unity3D之日常BUG | 日常记录 | 记录在使用Unity3D编辑器开发项目过程中,遇到的BUG和坑,让后来人可以有些参考。 |