本文仅作学习笔记分享,不作任何商业用途,侵权删
本文结合唐老狮,unity官方手册,麦扣等教程内容,引用会标明输出,如有不足还请斧正
引用:
注意:
1.什么是Resources?
resource就是动态加载资源地一种方式,便于你的各种对象(图片,纹理,音频,文本等等)管理
2.Resources同步加载
首先要分清出不同资源的不同类型关键词,来源唐老狮
之后创建一个同名文件夹,以图中两个内容为例,可以直接加载和按路径加载
建议用泛型方法比较方便,加载后会加载到内存中,实例化会创建物体
3.Resources异步加载
异步加载原理的灵魂示意图:
为什么要用协程包裹?
因为,异步加载的特点是加载到内存之后,要使用该资源要等1帧(关于协程可以看我的文章unity保姆级教程之协同程序-CSDN博客)
所以要精确这一帧,unity的双枪给出了答案(第二枪)
第一枪:返回值ResourceRequest 管理资源
当你使用异步加载的时候,可以看到Loadasync有一个返回值叫ResourceRequest,F12进去看
点开看看会有这些东西:ResourceRequest - Unity 脚本 API
可以知道这个返回值是用来管理你加载的异步资源的,你可以声明一个该变量去管理你的资源
也就是这样子
第二枪:相同基类YieldInstruction unity判断关键帧
yield return可以直接返回ResourcesRequest变量,
因为ResourcesRequest的基类的基类为YieldInstruction:
而yield return的定义方法基类就是这个YieldInstruction
双枪会给出答案:
总结一下:
先协程函数中加载,然后给unity判断过一帧了,最后实际调用
4.资源卸载
来源于唐老狮,纯理论知识我就偷懒了,重在理解,也可以查看手册