零基础入门 7: 创建自己的菜单

在上一篇菜单介绍分享之后,有一些小伙伴在后台留言说能不能分享下如何创建自定义的菜单栏?怎么创建?

今天这篇就来分享一下如何在项目内创建属于自己的菜单栏。也是2016年最后一发更新。

直入主题,今天的这节分享,可能对不会写脚本的小伙伴来说,会有一些内心的抗拒,要写脚本?我不会啊,会不会很难?

其实很容易,我会尽量把分享做的更直观,更容易些。实在不行,可以照葫芦画瓢么?对吧。

★开始★

首先我创建一个空项目,取名为CustomMenu。然后创建一个空的脚本,取名为CustomMenuScript

可以看到现在菜单上都是新创建项目自带的,并没有我们自定义添加的。

双击脚本,用编辑器进行编辑

不会写脚本的同学也没关系,按照我的步骤来就可以。关于如何创建脚本后自带模板内容,大家可以翻看之前分享的内容。

打开脚本文件后,增加编辑器宏限制。

如下图

为什么要增加这个呢?这样就相当于告诉Unity,我的这个脚本,只在编辑器模式下运行工作。

然后第二步,引入UnityEditor命名空间。因为只有引入这个命名空间,才可以创建自定义的菜单。

然后下一步,我们先随便定义一个static的静态函数。我起名为CustomMenu。这个函数是public还是private的并不影响我们创建自定义的菜单。

然后我们在函数上方,给我们的函数增加attribute。

[MenuItem("Jimin/CustomMenu")],字符串"Jimin/CustomMenu"就是我们自定义菜单的名字,/是代表菜单的层级。即CustomMenu是Jimin菜单下的子项。

此时,我们切回编辑器,就会发现你所命名的菜单已经出现了。

至于菜单里要实现的事,就等着你们根据功能自己去实现啦,比如打开一个窗口,实现一个什么样的功能,都可以在函数体里进行实现。

我先输出一句日志,来看一下测试效果。

来切回项目里,点击一下customMenu菜单来测试一下效果

同样的,我们可以在项目开发中,将所有自己开发的功能或者编辑器窗口都放到自己的菜单下进行统一管理和使用。

我简单的写一些代码来展示一下层级的功能,如图内的一些菜单及实现效果。

切回到项目里来测试一下效果。

然后我们来点击一下,看一下具体效果。

如上图可以看出,我们在对菜单有一些管理的时候,我也做了几种对日志的不同操作。看具体代码可以看出来,普通的Debug日志输出就是白色的,我们也可以通过富文本来实现对日志颜色以及大小的控制

我又将颜色更改为绿色。图中的#1AFF07FF就代表了绿色的值。

这样我们就完成了自定义菜单的创建。

可是......

总感觉少了点什么?

没错,那就是快捷键,虽然自定义菜单有了,但是每次都要点点点,总是有一些不方便,如果可以给常用的菜单增加快捷键,那岂不是完美?

说做就做,搞起来。

首先我们来记录一下Unity快捷键的对应值。

% 代表 Ctrl

# 代表 Shift

& 代表 Alt

举例如,我们将输出颜色日志,增加一个快捷键。control+alt+c,快捷键写在MenuItem菜单名字的字符串后就行

到项目内看一下是否成功呢?

动图展示一下点击菜单效果和快捷键效果。

好了, 创建自己的菜单就这样结束咯。如果不是很熟悉的同学,亲自动手写一下就会慢慢熟悉啦。

最后,2016年最后一更,祝大家元旦快乐~~~~新年...新...的开始。

有问题可以在下方点击留言哦,也可以留言告诉我,你最想知道什么内容的分享。

(๑•ᴗ•๑)...

明年见~

原文发布于微信公众号 - 韩东吉的Unity杂货铺(DeveloperJimin)

原文发表时间:2016-12-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

如何使用WP-CLI安装WordPress

很多人都熟悉WordPress的安装,Wordpress安装起来非常简单,其号称5分钟快速安装。但是,当您需要部署多个Wordpress时,重复的工作会拖慢你大...

1632
来自专栏Google Dart

AngularDart 4.0 高级-安全

本页面介绍了Angular内置的针对常见的Web应用程序漏洞和跨站脚本攻击等攻击的内置保护。 它不包括应用程序级别的安全性,如身份验证(此用户是谁?)和授权(此...

992
来自专栏Youngxj

js实现网页弹出窗口的代码详细教程

6185
来自专栏雪胖纸的玩蛇日常

Vue学习(4)

1.{{}}模板语法、插值、简单运算 2.指令系统 v-if 真正销毁重建 v-show 更改css的display,用于重复切换出现

632
来自专栏前端吧啦吧啦

手把手教你全家桶之React(一)

4469
来自专栏技术博客

ExtJs十一(ExtJs Mvc图片管理之一)

图片管理要在两个地方使用:一是标签页内的图片管理,一是文章内容编辑时嵌套到插入图片的窗口内。因而,将图片管理做成一个扩展比较方便。当然,做成MVC模式也行,不争...

1373
来自专栏java闲聊

SpringBoot+Vue2.x登陆功能

3064
来自专栏HTML5学堂

深入剖析iframe跨域问题

HTML5学堂:本文当中我们介绍了跨域的基本知识,讲解到了跨域的相关种类,并讲解了解决跨域中的一种方法——如何使用iframe跨域。讲解了iframe跨域的基本...

1.9K4
来自专栏smy

微信小程序避坑指南

 详见官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/client-lib/cl...

4313
来自专栏我和PYTHON有个约会

Django来敲门~第一部分【8.网页中的css/js/image处理】

通常情况下,网页开发时,页面中的样式是通过外部css样式进行处理的,外部的css文件加载在Django中,需要进行简单的处理

742

扫码关注云+社区

领取腾讯云代金券