UEDL4-1——资源加载

本章代码关键字

1
2
EditorGUIUtility.Load()                //加载Editor Default Resources文件夹下的资源,需要传入资源名(包括后缀名)
EditorGUIUtility.LoadRequired() //加载Editor Default Resources文件夹下的资源,需要传入资源名(包括后缀名),但如果没有加载到会报错

Editor Default Resources文件夹

Editor Default Resources 也是Unity当中的一个特殊文件夹,它的主要作用是放置提供给 EditorGUIUtility​ 加载的资源
想要使用 EditorGUIUtility​ 公共类来加载资源,我们需要将资源放置在 Editor Default Resources 文件夹中

加载资源

对应API:EditorGUIUtility.Load

注意事项:

  1. 只能加载Assets/Editor Default Resources/​文件夹下的资源
  2. 加载资源时,需要填写资源后缀名
  3. 该API只能返回Unity的Object​,我们使用时需要用as去转换
1
2
3
4
5
6
7
8
9
10
11
private Texture img;

private void OnGUI()
{
if (GUILayout.Button("加载编辑器图片资源"))
{
img = EditorGUIUtility.Load("EditorTeach.png") as Texture; //必须要加上后缀名
}
if (img != null)
GUI.DrawTexture(new Rect(0, 50, 160, 90), img);
}

显示效果:image

加载资源(如果资源不存在会直接报错)

对应API:EditorGUIUtility.LoadRequired

该方法相比EditorGUIUtility.Load​,它在未加载出资源时会直接抛出错误

注意事项:

  1. 只能加载Assets/Editor Default Resources/​文件夹下的资源
  2. 加载资源时,需要填写资源后缀名
  3. 该API只能返回Unity的Object​,我们使用时需要用as去转换
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private Texture img;
private Texture img2;

private void OnGUI()
{
if (GUILayout.Button("加载编辑器图片资源"))
{
img = EditorGUIUtility.Load("EditorTeach.png") as Texture;
}
if (img != null)
GUI.DrawTexture(new Rect(0, 50, 160, 90), img);

if (GUILayout.Button("加载编辑器图片资源"))
{
img2 = EditorGUIUtility.LoadRequired("EditorTeach.png") as Texture;
}
if (img2 != null)
GUI.DrawTexture(new Rect(0, 150, 160, 90), img);
}

显示效果:image

当资源不存在时,点击两个按钮分别会输出:image