在unity编辑器中,我们见到过编辑器的菜单栏,也见过一些插件导入unity编辑器后插件自己的菜单栏。

如下图:

本文讲如何才能够创建出一个菜单。

首先在project的assets里新建一个名为Editor的文件夹。

视频教程请关注:unity风雨路

注意:一定要放在assets这个根目录下。

第二步在这个文件夹中新建脚本。

例如我新建脚本ToolEditorMenu。

具体代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;public class ToolEditorMenu : MonoBehaviour
{//添加菜单栏[MenuItem("紫龙/紫龙大侠")]static void ShowWindowTool(){//EditorWindow.GetWindow(typeof(ToolEditorWindow));EditorWindow.GetWindow(typeof(ToolEditorWindow));}//添加菜单栏用于打开窗口[MenuItem("我的插件/工具/下一层工具")]static void ShownextWindow(){//EditorWindow.GetWindow(typeof(ToolEditorWindow));EditorWindow.GetWindow(typeof(nextwindow));}// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){}
}

在该脚本中共有两个菜单。

一个是一个二级菜单,另个是三级菜单。

先说二级菜单,只有"紫龙/紫龙大侠"这两个级别的菜单。

//添加菜单栏
    [MenuItem("紫龙/紫龙大侠")]
    static void ShowWindowTool()
    {
       
        EditorWindow.GetWindow(typeof(ToolEditorWindow));
    }

这段代码实现的效果如下:

而另个三级菜单的代码如下:

//添加菜单栏用于打开窗口
    [MenuItem("我的插件/工具/下一层工具")]
    static void ShownextWindow()
    {
       
        EditorWindow.GetWindow(typeof(nextwindow));
    }

效果如下:

会看到在工具后面还有一层菜单。

EditorWindow.GetWindow(typeof(nextwindow));

这个方法是获取菜单window的方法。所以GetWindow的方法里面必须有内容。需要返回一个窗口的类型。

所以以上两句代码中的typeof 里的内容是我定义的两个类。

第一个类 是ToolEditorWindow,直接是继承了MonoBehaviour。这个类里面是空的。如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class ToolEditorWindow : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){}
}

这样是无法获取到ToolEditorWindow这个窗口的。

获取菜单窗口的方法在后面nextwindow这个类:继续向下看

-另个nextwindow这个类。继承了Editorwindow。需要导入using UnityEditor;这个引用。

这个Editorwindow是unity系统内部提供的。

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;public class nextwindow : EditorWindow
{// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){}
}

继承Editorwindow后会这个菜单会获得一个窗体。

所以点击这个菜单后会获取到nextwindow这个窗口,弹出这个窗口。如下:

如何创建unity的菜单栏和窗口相关推荐

  1. Unity 3D 菜单栏快捷键详解

    nity 3D菜单栏及快捷键详解 File 菜单 Edit 菜单 Assets 菜单 GameObject 菜单 Component 菜单 Window 菜单 Help 菜单 其他快捷键 Unity ...

  2. 【三星官方教程】如何为Gear VR 开发应用(二):创建Unity项目

    关于项目创建与Demo导入 本系列教程将介绍如何用 unity 为Gear VR开发一个360度照片查看器.在开始用Unity为Gear VR开发应用前,需要完成Unity和Oculus的整合,并导入 ...

  3. 如何创建一个用弹出窗口来查看详细信息的超链接列

    如何创建一个用弹出窗口来查看详细信息的超链接列 出处:www.dotnetjunkie.com 这篇文章来自于一位忠实的DotNetJunkie的建议,他最初发了一封email给我们, 要求我们给出一 ...

  4. 《Java 2D游戏编程入门》—— 1.5 创建一个主动渲染的窗口

    本节书摘来异步社区<Java 2D游戏编程入门>一书中的第1章,第1.5节,作者:[美]Timothy Wright(莱特),更多章节内容可以访问云栖社区"异步社区"公 ...

  5. OpenGL创建一个GLFW背景红色窗口的实例

    OpenGL创建一个GLFW背景红色窗口 先上图,再解答. 完整主要的源代码 源代码剖析 先上图,再解答. 完整主要的源代码 #include <glad/glad.h> #include ...

  6. OpenGL创建hello Window你好,窗口

    创建hello Window你好,窗口 前期准备 GLAD 视口 准备好你的引擎 双缓冲(Double Buffer) 最后一件事 输入 渲染 前期准备 让我们试试能不能让GLFW正常工作.首先,新建 ...

  7. python如何创建问答窗口_在tkin中创建一个新的单独窗口

    我想创建一个新的单独窗口,比如在记事本中打开一个新页面.在 我写的是:import tinter from tkinter import Tk, Frame, Menu class Example(F ...

  8. Unity 3D 菜单栏与快捷键

    菜单栏是 Unity 3D 操作界面的重要组成部分之一,其主要用于汇集分散的功能与板块,并且其友好的设计能够使游戏开发者以较快的速度查找到相应的功能内容. 菜单栏 File 菜单 File 菜单主要用 ...

  9. unity 实现调用Windows窗口/对话框交互

    Unity调用Window窗口 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心 ...

  10. Unity中在Game窗口画线

    在Unity中画线有几种方式: Debug.DrawLine()  函数画线,在Game窗口不开启 Gizmos 时,只在Scene窗口显示,多用于调试. 通过  LineRenderer  来画线, ...

最新文章

  1. PyTorch中nn.Module类简介
  2. GitHub热榜,零基础学C++教程
  3. Eclipse中阿里JAVA代码规范插件(P3C)的安装及使用
  4. reactjs 全局状态管理:redux的组成
  5. Linux环境下配置Tomat
  6. 数据湖 data lake_在Data Lake中高效更新TB级数据的模式
  7. filter wiz_Grid Wiz简介:只需一瞬间即可制作出具有自定义浏览器支持CSS网格框架。
  8. 广东电网笔试_内容多,备考时间少?广东电网笔试如何准备?
  9. 浅谈 Mousewheel 事件
  10. 在html用微信跳转,H5如何跳转微信小程序?
  11. C# Winform Socket即时通讯
  12. 深耕“有效私域”,雀巢集团携手腾讯重塑零售数字化体验
  13. 流程自动化(RPA)的发展和应用
  14. [Coggle 30 Days of ML(2021.11)]Linux基础使用
  15. 武汉地铁软件测试自学,武汉影视节目制作培训(视频剪辑是否好找工作)
  16. EdgeX Foundry优秀文章视频汇总
  17. 一名程序员眼里中国量化投资的未来
  18. 申请专利的费用能计入研发费吗
  19. 2021-4月Python 机器学习——中文新闻文本标题分类
  20. Linux网络机顶盒rom,Amlogic 电视盒子修改Rom包,升级

热门文章

  1. C/C++游戏项目详细教程:《黄金矿工》
  2. unity黄金矿工游戏
  3. 服务器获取百度商桥消息,百度统计和百度商桥什么关系?怎么部署同一段代码实现统计和商桥弹窗?...
  4. ac68无线网卡 linux驱动下载,华硕ac68驱动|华硕USB-AC68无线网卡驱动下载 V2.1.2.1 官方版 - 比克尔下载...
  5. PDF在线转换成word免费版
  6. 传奇地图文件MapInfo参数大全
  7. Linux监控程序运行/停止+邮件通知
  8. Windows XP中的命令行界面
  9. 【整理】TAC码是什么?TAC码和IMEI有什么关系?
  10. 电子设计(8)NPN和PNP三极管驱动LED电路