Unity编辑器拓展EditorWindow

using UnityEditor;
using UnityEngine;

//namespace Assets.Editor
//{
//public class Editor_Wimdow : ScriptableObject
//{
//    [MenuItem("Tools/MyTool/Do It in C#")]
//    static void DoIt()
//    {
//        EditorUtility.DisplayDialog("MyTool", "Do It in C# !", "OK", "");
//    }
//}
//}

public class MySecondWindow : EditorWindow
{
    public bool mBool;
    public static int labelNumber;
    private void OnGUI()
    {

        GUILayout.BeginHorizontal("Box"); //开始一个水平布局

        if(GUILayout.Button("Button"))
        {
            labelNumber++;
        }

        GUILayout.Label(labelNumber.ToString(),GUILayout.Width(30));

        GUILayout.PasswordField("Password", '*');

        GUILayout.Label("tog");
        mBool = GUILayout.Toggle(mBool, "");

        GUILayout.EndHorizontal(); //结束一个水平布局

        GUILayout.BeginHorizontal("Box"); //开始一个水平布局

        GUILayout.Button("Button");

        GUILayout.Label("Label");

        GUILayout.PasswordField("Password", '$');

        GUILayout.Toggle(true, "");
    }
}
public class MyFirstWindow: EditorWindow
{
    public static int sliderValue;
    public static string textValue;
    public  GameObject gameObj_Value;
    void OnGUI()
    {
        EditorGUILayout.BeginVertical("Box"); //开始一个垂直布局 GUILayout.Button("Button");

        EditorGUILayout.LabelField("label_01");

        EditorGUILayout.Toggle(true, "");

        GUILayout.EndVertical(); //结束一个垂直布局
        EditorGUILayout.LayerField(2);
        EditorGUILayout.LabelField("slider__1");
        sliderValue = EditorGUILayout.IntSlider(sliderValue, -10, 10);
        //GUILayout.BeginVertical(GUILayout.Width(60));
        //sliderValue = GUILayout.HorizontalSlider(sliderValue, -10f, 10f, GUILayout.Width(10));
        //GUILayout.EndHorizontal();
        GUILayout.TextField("TextField只能一行");
        GUILayout.TextArea("TextArea可以多行\n 第二行");

        textValue = GUILayout.TextField(textValue);
        
        EditorGUILayout.TextField("zzz");

        //EditorGUILayout.ObjectField("ObjectField", GameObject.Find("Cube"), typeof(GameObject), true);
        gameObj_Value = EditorGUILayout.ObjectField("ObjectField", gameObj_Value, typeof(GameObject), true) as GameObject;
    }
}

public class Editor_Wimdow
{
 
    [MenuItem("Tools/Simple Pop Window")]
    private static void ShowWindow()
    {
        EditorUtility.DisplayDialog("title窗口", "message信息", "确定");
    }

    [MenuItem("Tools/Simple Pop Window -2")]
    private static void ShowWindow2()
    {
        EditorWindow.GetWindow(typeof(MyFirstWindow));
    }

    [MenuItem("Tools/Simple Pop Window -3")]
    private static void ShowWindow3()
    {
        //EditorWindow.GetWindow(typeof(MySecondWindow),false,"第二窗口");
        Rect re = new Rect(0, 0, 500, 500);

        EditorWindow.GetWindowWithRect(typeof(MySecondWindow),re);//规定大小窗口
    }
}

猜你喜欢

转载自blog.csdn.net/qq_15559109/article/details/128229656