UnityEditor 学习记录
(编辑器可视化窗体)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
@窗体的基本组件
(方法名)EditorGUILayout.Slider(float类型滑动条)
@效果展示
== 滑动条效果 ==
@关键代码
scale = EditorGUILayout.Slider(scale, 1, 100);
@官方样例
// 编辑器脚本,让您缩放选定的游戏对象之间的1到100
using UnityEditor;
using UnityEngine;
public class EditorGUILayoutSlider : EditorWindow
{
static float scale = 0.0f;
[MenuItem("Examples/Editor GUILayout Slider usage")]
static void Init()
{
EditorWindow window = GetWindow(typeof(EditorGUILayoutSlider));
window.Show();
}
void OnGUI()
{
scale = EditorGUILayout.Slider(scale, 1, 100);
}
void OnInspectorUpdate()
{
if (Selection.activeTransform)
Selection.activeTransform.localScale = new Vector3(scale, scale, scale);
}
}
@官方API
public static void Slider(SerializedProperty property, float leftValue, float rightValue, string label, params GUILayoutOption[] options);
public static void Slider(SerializedProperty property, float leftValue, <