【第一章编辑器开发基础第二节编辑器布局_2GUI中滚动列表(2/4)】

实现一个自定义窗口并且显示滚动列表,需要继承EditorWindow类,我会在代码里注释

csharp 复制代码
using UnityEngine;
using UnityEditor;

public class ExampleEditorWindow : EditorWindow
{
    // 添加菜单项,路径为"Example/Open Example Editor Window",这里的菜单项是unity顶部菜单项,具体效果看下面的图,当我我们点击出现的菜单项,他就会执行我们声明的方法,这里会执行Open这个方法
    [MenuItem("Example/Open Example Editor Window")]
    public static void Open()
    {
        // 获取或创建窗口实例并显示
        GetWindow<ExampleEditorWindow>().Show();
    }

    // 滚动视图的位置,用于记录和恢复滚动状态
    private Vector2 scrollPosition;


    /// <summary>
    /// unity编辑器自带方法,会自动调用
    /// </summary>
    private void OnGUI()
    {
        ScrollViewExaple(); // 滚动视图示例
       
    }

    // 滚动视图示例方法
    private void ScrollViewExaple()
    {
        // 开始滚动视图
        scrollPosition = GUILayout.BeginScrollView(scrollPosition);

        // 创建50个按钮作为滚动内容
        for (int i = 0; i < 50; i++)
        {
            GUILayout.Button("btn" + i);
        }

        // 结束滚动视图
        GUILayout.EndScrollView();
    }

    
}

运行效果图如下

这个Unity 编辑器窗口 (EditorWindow) 的生命周期函数调用顺序

相关推荐
星火飞码iFlyCode1 小时前
真实案例 | 如何用iFlyCode开发Webpack插件?
java·python·编辑器
东方不败耶耶耶2 小时前
Notepad++插件开发实战指南
编辑器
QL.ql14 小时前
vscode的wsl环境,ESP32驱动0.96寸oled屏幕
ide·vscode·编辑器
广州华锐视点1 天前
论郑和下西洋元素融入课件编辑器的意义与影响
编辑器
Dawn·张1 天前
UE小:编辑器模式下「窗口/鼠标不在焦点」时仍保持高帧率
编辑器
ayaya_mana2 天前
Notepad--:国产跨平台文本编辑器,Notepad++ 的理想替代方案
linux·windows·macos·编辑器·notepad·notepad--
QL.ql2 天前
(一)vscode搭建espidf环境
ide·vscode·编辑器
cxylay2 天前
LaTeX(排版系统)Texlive(环境)Vscode(编辑器)环境配置与安装
ide·vscode·编辑器·latex·texlive
布兰妮甜2 天前
Visual Studio Code 跨平台快捷键指南:Windows 与 macOS 全面对比
windows·vscode·macos·编辑器·快捷键
凯子坚持 c3 天前
虚拟机一站式部署Claude Code &可视化UI界面
ui·编辑器·vim