40.EditorUtility-编辑器默认窗口相关
40.1 知识点
显示提示窗口
EditorUtility.DisplayDialog(“标题”, “显示信息”, “确定键名”);
注意:窗口显示会阻塞逻辑 即一定要对提示窗口做处理后才会显示其他逻辑
private void OnGUI()
{
if(GUILayout.Button("显示提示窗口"))
{
if(EditorUtility.DisplayDialog("测试窗口", "确定一定要做这件事情吗", "一定要做"))
{
Debug.Log("确定要做,在这里去处理逻辑");
}
else
{
Debug.Log("点击了叉叉,不去做");
}
Debug.Log("窗口显示完毕");
}
}
显示三键提示面板
int EditorUtility.DisplayDialogComplex(“标题”, “显示信息”, “按钮1名字”, “按钮3名字”, “按钮2名字”);
返回值 0-按钮1按下 1-按钮3按下 2-按钮2按下
注意:窗口显示会阻塞逻辑
private void OnGUI()
{
if(GUILayout.Button("显示三键提示窗口"))
{
int result = EditorUtility.DisplayDialogComplex("三键提示", "显示信息", "选项1", "关闭", "选项2");
switch (result)
{
case 0:
Debug.Log("选项1按下了");
break;
case 1:
Debug.Log("关闭键按下了");
break;
case 2:
Debug.Log("选项2按下了");
break;
default:
break;
}
Debug.Log("三键窗口显示完毕");
}
}
进度条相关
显示进度条
EditorUtility.DisplayProgressBar(“进度条”, “显示信息”, 进制值0~1);
关闭进度条
EditorUtility.ClearProgressBar();
注意:进度条窗口不会卡逻辑,但是需要配合关闭进度条使用
private void OnGUI()
{
if(GUILayout.Button("显示更新进度条"))
{
//每次点击加进度条进度
value += 0.1f;
EditorUtility.DisplayProgressBar("进度条标题", "进度条窗口显示内容", value);
Debug.Log("进度条窗口显示完毕");
}
if(GUILayout.Button("关闭进度条"))
{
value = 0;
EditorUtility.ClearProgressBar();
}
}
40.2 知识点代码
Lesson40_EditorUtility_编辑器默认窗口相关
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Lesson40_EditorUtility_编辑器默认窗口相关 : MonoBehaviour
{
void Start()
{
#region 知识点一 显示提示窗口
//EditorUtility.DisplayDialog("标题", "显示信息", "确定键名");
//注意:窗口显示会阻塞逻辑 即一定要对提示窗口做处理后才会显示其他逻辑
#endregion
#region 知识点二 显示三键提示面板
// int EditorUtility.DisplayDialogComplex("标题", "显示信息", "按钮1名字", "按钮3名字", "按钮2名字");
// 返回值 0-按钮1按下 1-按钮3按下 2-按钮2按下
//注意:窗口显示会阻塞逻辑
#endregion
#region 知识点三 进度条相关
//显示进度条
//EditorUtility.DisplayProgressBar("进度条", "显示信息", 进制值0~1);
//关闭进度条
//EditorUtility.ClearProgressBar();
//注意:进度条窗口不会卡逻辑,但是需要配合关闭进度条使用
#endregion
}
}
MyEditorUtilityLearnWindow
using System;
using UnityEditor;
using UnityEngine;
public class MyEditorUtilityLearnWindow : EditorWindow
{
[MenuItem("编辑器拓展教程/MyEditorUtilityLearnWindow")]
private static void OpenMyEditorUtilityLearnWindow()
{
MyEditorUtilityLearnWindow win = EditorWindow.GetWindow<MyEditorUtilityLearnWindow>("EditorUtility知识学习");
win.Show();
}
#region Lesson40_EditorUtility_编辑器默认窗口相关
private float value;
#endregion
private void OnGUI()
{
#region Lesson40_EditorUtility_编辑器默认窗口相关
if (GUILayout.Button("显示提示窗口"))
{
if (EditorUtility.DisplayDialog("测试窗口", "确定一定要做这件事情吗", "一定要做"))
{
Debug.Log("确定要做,在这里去处理逻辑");
}
else
{
Debug.Log("点击了叉叉,不去做");
}
Debug.Log("窗口显示完毕");
}
if (GUILayout.Button("显示三键提示窗口"))
{
int result = EditorUtility.DisplayDialogComplex("三键提示", "显示信息", "选项1", "关闭", "选项2");
switch (result)
{
case 0:
Debug.Log("选项1按下了");
break;
case 1:
Debug.Log("关闭键按下了");
break;
case 2:
Debug.Log("选项2按下了");
break;
default:
break;
}
Debug.Log("三键窗口显示完毕");
}
if (GUILayout.Button("显示更新进度条"))
{
//每次点击加进度条进度
value += 0.1f;
EditorUtility.DisplayProgressBar("进度条标题", "进度条窗口显示内容", value);
Debug.Log("进度条窗口显示完毕");
}
if (GUILayout.Button("关闭进度条"))
{
value = 0;
EditorUtility.ClearProgressBar();
}
#endregion
}
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com