Editor工具开发基础四:窗口EditorWindow

目录

1.设置窗口位置和大小

2.设置窗口最大和最小

3.设置窗口标题

4.设置窗中窗 BeginWindows和EndWindows

5.添加窗中窗可拖动 GUI.DragWindow()

完整代码:


public class EditorToolWindow : EditorWindow {
    public static EditorToolWindow ins;

    [MenuItem("EditorTool/OpenWindow")]
    public static void OpenWindow() {
        ins = GetWindow<EditorToolWindow>();
        ins.Show();
    }
}

效果:

 

1.设置窗口位置和大小

public class EditorToolWindow : EditorWindow {
    public static EditorToolWindow ins;

    [MenuItem("EditorTool/OpenWindow")]
    public static void OpenWindow1() {
        Rect rect = new Rect(new Vector2(500, 300), new Vector2(300, 500));
        ins = GetWindow<EditorToolWindow>();
        ins.position = rect;
        ins.Show();
    }
}

 tips: 另一种写法
 ins = GetWindowWithRect<EditorToolWindow>(rect);
 ins.Show();

效果:

2.设置窗口最大和最小

        ins.maxSize = new Vector2(500, 500);
        ins.minSize = new Vector2(100, 100);

3.设置窗口标题

     ins.titleContent = new GUIContent("我是窗口标题");

4.设置窗中窗 BeginWindows和EndWindows

Rect winRact = new Rect(new Vector2(100, 100), new Vector2(200, 200));
private void OnGUI() {
        BeginWindows();
        GUI.Window(1, winRact, DoWindow, "窗中窗");
        EndWindows();
    }
void DoWindow(int id) {
        GUILayout.Button("按钮");
    }

效果:

5.添加窗中窗可拖动 GUI.DragWindow()

Rect winRact = new Rect(new Vector2(100, 100), new Vector2(200, 200));
    private void OnGUI() {
        BeginWindows();
        winRact = GUI.Window(1, winRact, DoWindow, "窗中窗");
        EndWindows();
    }

 

    void DoWindow(int id) {
        GUILayout.Button("按钮");
        GUI.DragWindow();
    }

注:
winRact = GUI.Window(1, winRact, DoWindow, "窗中窗");
此处如果不用winRact接收返还 窗口将无法拖动

效果:

完整代码:

using UnityEngine;
using UnityEditor;

public class EditorToolWindow : EditorWindow {
    public static EditorToolWindow ins;

    [MenuItem("EditorTool/OpenWindow")]
    public static void OpenWindow1() {
        Rect rect = new Rect(new Vector2(500, 100), new Vector2(300, 500));

        ins = GetWindow<EditorToolWindow>();
        ins.position = rect;

        ins.maxSize = new Vector2(500, 500);
        ins.minSize = new Vector2(100, 100);
        ins.titleContent = new GUIContent("我是窗口标题");
        ins.Show();
    }
    Rect winRact = new Rect(new Vector2(100, 100), new Vector2(200, 200));
    private void OnGUI() {
        BeginWindows();
        winRact = GUI.Window(1, winRact, DoWindow, "窗中窗");
        EndWindows();
    }

    void DoWindow(int id) {
        GUILayout.Button("关闭");
        GUI.DragWindow();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一梭键盘任平生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值