
一、Resources资源动态加载
1、Unity中特殊文件夹
1、工程路径获取
Application.dataPath
2、Resources资源文件夹
路径获取:一般不获取
只能使用Resources相关API进行加载
可以用工程路径拼接获取路径
print(Application.dataPath+"/Resources");
注意:
需要我们自己创建
作用:
资源文件夹
1.需要通过Resources相关API动态加载的资源需要放在其中
2.该文件夹下所有文件都会被打包
3.打包时Unity会对其压缩加密
4.该文件夹打包后只读只能通过Resources相关API加载
3、StreamingAssets流动资源文件夹
路径获取
print(Application.streamingAssetsPath);
注意:
需要我们自已创建
作用:
流文件夹
1.打包出去不会被压缩励密,可以任由我们门摆布
2.移动平台只读,PC平台可读可写
3.可以放入一些需要自定义动态加载的初始资源
4、persistentDataPath持久数据文件夹
路径获取
print(Application.persistentDataPath);
注意:
不需要我们自己创建
作用:
固定数据文件夹
1.所有平台都可读写
2.一般用于放置动态下载或者动态创建的文件,游戏中创建或者获取的文件都放在其中
5、Plugins插件文件夹
路径获取般不获取
注意:
需要我们自己创建
作用:
插件文件夹
不同平台的插件相关文件放在其中
比如放入Ios和Android平台的工具
6、Editor编辑器文件夹
路径获取:一般不获取
如果硬要获取可以用工程路径拼接
注意:
需要我们自己创建
作用:
编辑器文件夹
1.开发Unity编辑器时,编辑器相关脚本放在该文件夹中
2.该文件夹中内容不会被打包出去
7、默认资源文件夹StandardAssets
路劲获取:一般不获取
注意:
需要我们自己创建
作用:
默认资源文件夹
一般Unity自带资源都放在这个文件夹下
代码和资源优先被编译
2、Resources同步加载
1、Resources资源动态加载的作用
1.通过代码动态加载Resources文件夹下指定路径资源
2.避免繁锁的拖曳操作
2、常用资源类型
1.预设体对象 Gameobject
2.音效文件 AudioClip
3.文本文件 TextAsset
4.图片文件 Texture
5.其它类型 需要什么用什么类型
注意:
预设体对象加载需要实例化
其它资源加载一般直接用
3、资源同步加载【普通方法】
一个工程可以有多个Resources文件夹,打包时会自动整合在一起
1.预设体对象 想要创建在场景上【实例化】
第一步:要去加载设体的资源文件(本质上就是加载配置数据在内存中)
Object obj = Resources.Load("Cube");
第二步:如果想要在场景创建预设体一定是加载配置文件过后然后实例化
Instantiate(obj);
2.音效资源
public AudioSource audioS;
第一步:加载数据
Object obj = Resources.Load("Music/BkMusic");
第二步:使用数据,不需要实例化音效切片,只需要把数据赋值到正确的脚本上即可
audioS.clip = obj as AudioClip;
audioS.Play();
3.文本资源
文本资源支持的格式
.txt.xml.bytes.json.html.csv
TextAsset ta = Resources.Load("Txt/Test")as TextAsset;
文本内容
print(ta.text);
字节数据组
print(ta.bytes);
4.图片
private Texture tex;
tex = Resources.Load("Tex/TestJPG") as Texture;
private void OnGUI(){
GUI.DrawTexture(new Rect(0, 0,100, 100),tex);
}
5.其它类型 需要什么类型就用什么类型就行
6.问题:资源同名怎么办
Resources.Load加载同名资源时,无法准确载出你想要的内容
可以使用另外的API
1.加载指定类型的资源
tex = Resources.Load(