知识点一:Resources资源动态加载的作用
- 作用:
- 通过代码动态加载Resources文件夹下指定路径的资源。
- 避免繁琐的拖曳操作,提高开发效率。
知识点二:常用资源类型
- 预设体对象:GameObject
- 加载后需要实例化才能使用在场景中。
- 音效文件:AudioClip
- 加载后可直接赋值给音频源(AudioSource)使用。
- 文本文件:TextAsset
- 支持多种格式,如.txt、.xml、.bytes、.json等。
- 加载后可访问其文本内容或字节数据。
- 图片文件:Texture
- 加载后可直接用于图像渲染或材质设置。
- 其它类型:根据需要加载相应类型的资源。
注意:
- 预设体对象加载后需要实例化。
- 其它资源加载后一般可直接使用。
知识点三:资源同步加载(普通方法)
1. Resources文件夹
- 在一个工程中,Resources文件夹可以有多个。
- 打包时,Resources文件夹中的内容都会被打包在一起。
2. 加载预设体对象
- 步骤:
- 加载预设体的资源文件(加载配置数据到内存中)。
Object obj = Resources.Load("Cube");
- 实例化预设体,将其创建在场景上。
Instantiate(obj);
- 加载预设体的资源文件(加载配置数据到内存中)。
3. 加载音效资源
- 步骤:
- 加载音效文件。
Object obj3 = Resources.Load("Music/BKMusic");
- 将加载的音效文件赋值给音频源的clip属性,并播放。
audioS.clip = obj3 as AudioClip;
audioS.Play();
- 加载音效文件。
4. 加载文本资源
- 支持的格式:.txt、.xml、.bytes、.json、.html、.csv等。
- 步骤:
- 加载文本文件。
TextAsset ta = Resources.Load("Txt/Test") as TextAsset;
- 访问文本内容。
print(ta.text);
- 加载文本文件。
5. 加载图片资源
- 步骤:
- 加载图片文件。
Texture tex = Resources.Load("Tex/TestJPG") as Texture;
- 加载图片文件。
6. 处理资源同名问题
- 问题:Resources.Load加载同名资源时,无法准确加载出想要的内容。
- 解决方案:
- 6-1:加载指定类型的资源。
tex = Resources.Load("Tex/TestJPG", typeof(Texture)) as Texture;
- 6-2:加载指定名字的所有资源,并根据类型进行区分。
Object[] objs = Resources.LoadAll("Tex/TestJPG");
foreach (Object item in objs)
{
if (item is Texture)
{
// 处理Texture类型资源
}
else if (item is TextAsset)
{
// 处理TextAsset类型资源
}
}
- 6-1:加载指定类型的资源。
知识点四:资源同步加载(泛型方法)
- 泛型方法:使用
Resources.Load<T>()
可以更加简洁地加载指定类型的资源。 - 示例:
- 加载文本资源。
TextAsset ta2 = Resources.Load<TextAsset>("Tex/TestJPG");
print(ta2.text);
- 加载图片资源。
Texture tex = Resources.Load<Texture>("Tex/TestJPG");
- 加载文本资源。
总结
- Resources动态加载资源的方法:
- 提高了资源的拓展性和灵活性。
- 相对于拖曳操作,更加一劳永逸、方便快捷。
- 重要知识点:
- 熟记
Resources.Load
和Resources.LoadAll
等API的使用方法。 - 注意不同资源类型的加载方式和使用方式。
- 预设体加载后需要实例化才能使用在场景中。
- 了解并处理资源同名问题,确保正确加载所需资源。
- 熟记