14.EditorGUIUtility-资源加载
14.1 知识点
准备工作
随便导入一张图片用于测试
Editor Default Resources文件夹
Editor Default Resources 也是Unity当中的一个特殊文件夹,它的主要作用是放置提供给 EditorGUIUtility 加载的资源。想要使用 EditorGUIUtility 公共类来加载资源,我们需要将资源放置在 Editor Default Resources 文件夹中。
加载资源(如果资源不存在返回null)
EditorGUIUtility.Load
注意事项:
- 只能加载Assets/Editor Default Resources/文件夹下的资源
- 加载资源时,需要填写资源后缀名,否则加载失败
private Texture img;
private void OnGUI()
{
//加载资源(如果资源不存在返回null)
if(GUILayout.Button("加载编辑器图片资源"))
img = EditorGUIUtility.Load("head.png") as Texture;
if (img != null)
GUI.DrawTexture(new Rect(0, 50, 160, 90), img);
}
加载资源(如果资源不存在会直接报错)
EditorGUIUtility.LoadRequired
注意事项:
- 只能加载Assets/Editor Default Resources/文件夹下的资源
- 加载资源时,需要填写资源后缀名
private Texture img2;
private void OnGUI()
{
//加载资源(如果资源不存在会直接报错)
if (GUILayout.Button("加载编辑器图片资源(如果资源不存在会直接报错)"))
img2 = EditorGUIUtility.LoadRequired("head.png") as Texture;
if (img2 != null)
GUI.DrawTexture(new Rect(0, 150, 160, 90), img2);
}
14.2 知识点代码
Lesson14_EditorGUIUtility_资源加载
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Lesson14_EditorGUIUtility_资源加载 : MonoBehaviour
{
void Start()
{
#region 准备工作
//随便导入一张图片用于测试
#endregion
#region 知识点一 Editor Default Resources文件夹
//Editor Default Resources 也是Unity当中的一个特殊文件夹
//它的主要作用是放置提供给 EditorGUIUtility 加载的资源
//想要使用EditorGUIUtility公共类来加载资源
//我们需要将资源放置在 Editor Default Resources 文件夹中
#endregion
#region 知识点二 加载资源(如果资源不存在返回null)
//对应API:
//EditorGUIUtility.Load
//注意事项:
//1.只能加载Assets/Editor Default Resources/文件夹下的资源
//2.加载资源时,需要填写资源后缀名
#endregion
#region 知识点三 加载资源(如果资源不存在会直接报错)
//对应API:
//EditorGUIUtility.LoadRequired
//注意事项:
//1.只能加载Assets/Editor Default Resources/文件夹下的资源
//2.加载资源时,需要填写资源后缀名
#endregion
}
}
MyEditorGUIUtilityLearnWindow
using System;
using UnityEditor;
using UnityEngine;
public class MyEditorGUIUtilityLearnWindow : EditorWindow
{
[MenuItem("编辑器拓展教程/MyEditorGUIUtilityLearnWindow")]
private static void OpenMyEditorGUIUtilityLearnWindow()
{
MyEditorGUIUtilityLearnWindow win = EditorWindow.GetWindow<MyEditorGUIUtilityLearnWindow>("EditorGUIUtility学习面板");
//win.titleContent = new GUIContent("EditorGUIUtility学习面板");
win.Show();
}
#region Lesson14_EditorGUIUtility_资源加载
private Texture img;
private Texture img2;
#endregion
private void OnGUI()
{
#region Lesson14_EditorGUIUtility_资源加载
//加载资源(如果资源不存在返回null)
if(GUILayout.Button("加载编辑器图片资源"))
img = EditorGUIUtility.Load("head.png") as Texture;
if (img != null)
GUI.DrawTexture(new Rect(0, 50, 160, 90), img);
//加载资源(如果资源不存在会直接报错)
if (GUILayout.Button("加载编辑器图片资源(如果资源不存在会直接报错)"))
img2 = EditorGUIUtility.LoadRequired("head.png") as Texture;
if (img2 != null)
GUI.DrawTexture(new Rect(0, 150, 160, 90), img2);
#endregion
}
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com