UnityEditor 学习记录1
(编辑器可视化窗体)EditorWindow
@创建窗体
@关键代码
1.创建继承EditorWindow的类
//创建继承EditorWindow的类
public class _DisplayUI : EditorWindow
{
}
@进入窗体
@关键代码
1.编写进入EditorWindow的类窗体的方法
static void Init()
{
_DisplayUI window = (_DisplayUI)EditorWindow.GetWindow(typeof(_DisplayUI));
window.Show();
}
2.使用MenuItem特性将方法放在Unity菜单栏下
//菜单栏的设置
[MenuItem("MyWindow/My Window")]
static void Init()
{
// Get existing open window or if none, make a new one:
_DisplayUI window = (_DisplayUI)EditorWindow.GetWindow(typeof(_DisplayUI));
window.Show();
}
@效果展示
完成上面两部后,在菜单栏就可以找到自定义的功能选项,通过选项就可以进入EditorWindow了,注意MenuItem特性方法所在脚本必须放在名为Edtior的文件夹下
打开的窗体:
完成
至此就可以通过EditorGUILayou里的方法来定义我们自己的窗体了!
(窗体界面设置类)EditorGUILayout
@创建窗体内容模块的方法
(方法名)BeginToggleGroup和EndToggleGroup(点选菜单)
@效果展示
== 关闭效果 ==
== 打开效果 ==
@关键代码
//菜单列表的开关
bool groupEnabled;
//菜单列表的样式
GUIContent label;
//标题文本
string myString = "Hello World";
private void OnEnable()
{
//设置标题样式
label = new GUIContent(myString);
}
void OnGUI()
{
//菜单栏的进入方法
groupEnabled = EditorGUILayout.BeginToggleGroup(label, groupEnabled);
//菜单结束
EditorGUILayout.EndToggleGroup();
}
@官方样例
//简单的脚本,让你对齐游戏对象位置/旋转/缩放与选定的活动变换
using UnityEngine;
using UnityEditor;
public class Aligner : EditorWindow
{
bool[] pos = new bool[3] {
true, true, true };
bool[] rot = new bool[3] {
true, true, true };
bool[] scale = new bool[3] {
true, true, true