Unity3D资源加载Resources
目录
1、博客介绍
本篇博客对资源加载类Resources做一个介绍
2、内容
FindObjectsOfTypeAll | 返回一个该类型对象的列表 |
Load | 从Resources文件夹内加载一个路径的资源 |
LoadAll | 从Resources文件夹内加载一个路径下的所有资源 |
LoadAsync | 从Resources文件夹内异步加载路径下的资源 |
UnloadAsset | 从内存中卸载资源 |
UnloadUnusedAssets | 卸载未使用的资源 |
FindObjectsOfTypeAll:查找的对象包括场景目录下的对象和资源列表内的对象,以下演示,我输出所有带有Test.cs脚本的物体,我将Test挂载在Main Camera下,并将Main Camera制成预制体,切断场景内的预制体联系,并修改名字,两个物体均被输出。
Load:load就很简单了,指定一个Resources目录下的路径就可以加载了,加载时也可以指定好加载资源的类型,写法有所不同。
var cube = Resources.Load("Prefab/Cube");
GameObject cube = Resources.Load<GameObject>("Prefab/Cube");
GameObject cube = Resources.Load("Prefab/Cube") as GameObject;
Instantiate(cube);
LoadAll:加载指定目录下的所有对象,可以指定类型去加载
//加载Prefab目录下的所有对象
var prefabs = Resources.LoadAll("Prefab");
//加载Prefab目录下的所有GameObject对象
GameObject[] prefabs1 = Resources.LoadAll<GameObject>("Prefab");
LoadAsync:异步加载资源,通过协程的方式来加载资源,返回的是一个ResourcesRequest,加载的资源在asset内。
StartCoroutine(LoadPrefab());
IEnumerator LoadPrefab()
{
ResourceRequest request = Resources.LoadAsync("Prefab/Cube");
yield return request;
Instantiate(request.asset);
}
UnloadAsset:直接卸载加载在内存的资源。
测试了哈,没啥用。。。。。。。。。。。
UnloadUnusedAssets:卸载内存中所有没有使用的资源
测试挺好用的
Resources.UnloadUnusedAssets();
3、推送
博主Github: https://github.com/KingSun5
4、结语
若是觉得博主的文章写的不错,不妨关注一下博主,点赞一下博文,另博主能力有限,若文中有出现什么错误的地方,欢迎各位评论指摘。
QQ交流群:806091680(Chinar)
该群为CSDN博主Chinar所创,推荐一下!我也在群里!
本文属于原创文章,转载请著名作者出处并置顶!!!!