Unity 资源加载
资源分类:
声音:AudioClip, 声音在unity中,都叫做音频剪辑(AudioClip),分为长声音和音效,但都是AudioClip
视频:MoveTexture, 用来显示视频,
文本: TextAsset,主要为:json,xml,其它文本文件
图片: Texture,Texture2D 两者都属性贴图,就是我们说的图片,
Sprite 也是图片,是能过Texture转换而来的图片,
Texture和Sprite分别对应UI中的RawImage:Texture,和Image:Sprite
AssetBundle: 将以上所有内容打包在一起,形成一个AssetBundle包,简称ab包,
加载方式:
本地加载:不能加载ab包
Object obj = Resources.load(“资源名称或路径下的名字 不需要扩展名”);
T t1 = Resources.load(“资源名称或路径下的名字 不需要扩展名”);表示加载Resources目录下指定的资源
Object[] objs = Resources.loadAll(“资源名称或路径下的名字 不需要扩展名”);
远程加载服务器内容,也可以加载本地,可加载ab包
1:WWW w = new WWW(远程地址)
2:WWW w2 = WWW.LoadFromCacheOrDownload(远程地址,版本号);
LoadFromCacheOrDownload:从远程或本地缓存加载,每次加载时,会先到本地的字典中去查找那就的版本号有没有,
如果有,就把存在本地版本号中的内容取出并加载出来,如果没有就从远程加载,加载完以后就保存到本地字典中,
用版本号做为键,加载的内容做为值。
3:UnityWebRequest:加载远程ab包
AssetBundle:称为ab包,是unity的一种打包,和解压包的技术
ab.Unload(false),当资源从ab包中解压完以后,表示从ab中释放加载的内容,但是该内容在内在还存在,
ab.Unload(true),表示把ab中的内容全部从电脑中删除,这样游戏中使用到的资源就会报错,程序崩溃,
所以不建议使用。在游戏退出时,可以考虑使用。
ab包也可以从本地加载:
AssetBundle ab = AssetBundle.LoadFromFile(Application.streamingAssetsPath + “/js.assetbundle”);通过路径加载
AssetBundle ab2 = AssetBundle.LoadFromMemory(byte[]);加载指定的字节数组