Unity扩展Hierachry的右键菜单

游戏制作到一定阶段后,一定会出现一些GameObject的“模板”。比如一个敌人一定会有一个“Enemy Behaviour”、“Box Collider”等。虽然Prefab可以用来作为“预制件”,但是Prefab产生的物体和Prefab自身有关联,同时还要从Project菜单里去找到Prefab再拖出来。

一个解决方案是扩展编辑器菜单,就像右键Hierachry时出现的3D Object、2D Object一样。可以创造GameObject的菜单有两个,一个是顶部菜单的GameObject,另一个是Hierachry的右键菜单。

Unity Editor Extensions – Menu Items 的文章中提到了如何扩展顶部菜单.

using UnityEngine;
using UnityEditor;

public class MenuItems
{
 [MenuItem("Tools/Clear PlayerPrefs")]
 private static void NewMenuOption()
 {
  PlayerPrefs.DeleteAll();
 }
}

但是没有提到Hierachry右键菜单的扩展。

此文章提到,Hierachry右键菜单其实来自于顶部GameObject的菜单,只是截取了其中的“一段”。如果要扩展,只需要把添加到GameObject菜单的菜单项的优先级设置到这“一段”之间即可。这样就可以同时出现在GameObject菜单和Hierachry右键菜单中了。

 public static class Test {

  [MenuItem("GameObject/MyMenu/Do Something", priority = 0)]
  static void Init() {
   Debug.Log("here");
  }
 }

下图显示了两个菜单中各项的优先度。可以看到只要优先度在0到49之间,就可以同时出现在两个菜单中。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Unity3D实现导航效果

    介绍: unity界面开发,会用到很多导航的按钮,他们是公共的,单击其中一个按钮,显示对应的界面. unity中,UGUI自带Toggle组件,NGUI也有Toggle复选框,都方便了开发者的开发.但是只有合适自己才是王道. 今天,就用普通的按钮组建,来编写自己的导航. 导航的组成: 总控制 按钮组 面板组 步骤: 编写脚本:<NavigationButton>  控制按钮的高亮,动画等. 编写脚本:<NavigationPanel>   控制面板的显示和关闭. 编写脚本:<

  • Unity扩展Hierachry的右键菜单

    游戏制作到一定阶段后,一定会出现一些GameObject的"模板".比如一个敌人一定会有一个"Enemy Behaviour"."Box Collider"等.虽然Prefab可以用来作为"预制件",但是Prefab产生的物体和Prefab自身有关联,同时还要从Project菜单里去找到Prefab再拖出来. 一个解决方案是扩展编辑器菜单,就像右键Hierachry时出现的3D Object.2D Object一样.可以创造G

  • vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单

    今天分享的不是技术,今天给大家分享个插件,针对现有的vue右键菜单插件,大多数都是需要使用插件本身自定义的标签,很多地方不方便,可扩展性也很低,所以我决定写了一款自定义指令调用右键菜单(vuerightmenu) 安装  npm install rightmenu --save-dev   开始 //main.js import vue from "vue"; import rightMenu from "rightMenu"; vue.use(rightMenu)

  • jQuery简单实现禁用右键菜单

    代码非常简单,这里就不多废话了,直接上代码: 复制代码 代码如下: $(document).ready(function(){     $(document).bind("contextmenu",function(e){         return false;     }); }); 5行代码搞定,简单吧,当然小伙伴们可以自由扩展下,可以实现屏蔽右键菜单的指定项.

  • Bootstrap风格的zTree右键菜单

    HTML: <%-- 右键菜单 --%> <div id="zTreeRightMenuContainer" style="z-index: 9999;"> <%-- 层级 0 --%> <ul class="dropdown-menu" role="menu" level="0"> <%-- 通过给菜单项添加样式"hasChildren&qu

  • JS实现的仿东京商城菜单、仿Win右键菜单及仿淘宝TAB特效合集

    本文实例讲述了JS实现的仿东京商城菜单.仿Win右键菜单及仿淘宝TAB特效.分享给大家供大家参考.具体如下: 这是一个非常好的实用菜单整合特效,有多级下拉菜单.仿东京商城的拉出式菜单.仿Windows的右键菜单,仿淘宝的标签Tab菜单,每一个都是精彩,代码中附有丰富的注释,便于你的学习和修改. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-f-jd-taobao-win-rbutton-tab-demo/ 具体代码如下: <!DOCTYP

  • jquery实现右键菜单插件

    今天开发一个项目的时候需要一个模拟鼠标右键菜单的功能.也就是在网页点击鼠标右键的时候不是弹出系统的菜单而是我们制定的内容.这样可以拓展右键的功能.实现过程不多说了,写出来的代码和效果如下: js部分: 复制代码 代码如下: //创建右键菜单 var epMenu={     create:function(point,option){         var menuNode=document.getElementById('epMenu');         if(!menuNode){   

  • 使用OpenLayers3 添加地图鼠标右键菜单

    添加右键菜单,首先我们要监听鼠标右键点击的操作,我们知道鼠标右键事件名是 contextmenu,当鼠标在 html 元素之上,点击鼠标右键,便会触发 contextmenu 事件,在 contextmenu 事件的回调函数中实现相应的显示菜单功能即可. 那么在 openlayers 中,在地图中添加这个事件,我们从哪里下手呢?首先我们得了解 openlayers 的初始化页面的过程. openlayers 初始化页面过程 openlayers 也是一个前端库,那么它肯定离不开 html 的运用

  • ASP.NET MVC 2右键菜单和简单分页实例讲解

    右键菜单非常方便,很多时候会用到.这篇文章将使用一个JQUERY的插件在ASP.NET MVC中实现右键菜单.本文还将介绍一下在ASP.NET MVC中如何实现简单的分页.效果如下图: 新建一个asp.net mvc应用程序.将此插件放入Scripts文件夹.并在页面上引用. 定义右键菜单: <div class="contextMenu" id="myMenu1"> <ul> <li id="detail">

  • Intellij Idea插件开发之创建项目层级的右键菜单

    在使用Android Studio的过程中,发现自带的一些插件无法满足项目的实际需要,便着手自己开发对应的插件.下面是我开发插件过程中的一个记录,会持续和大家分享. 分享一:创建Project右键菜单 1,按照项目向导一步一步创建一个Demo项目,就不再介绍了,可以参照这篇文章http://www.jb51.net/article/135535.htm 2,创建Action,在plugin配置文件中你会看到 <action id="FirstAction" class="

  • Unity3D使用右键菜单打开工程

    Unity没有像Vs那样的"*.sln"的项目工程文件,不能通过这个文件来打开工程.但是原有的打开已有工程的方法太过于麻烦了,则现在来通过添加右键菜单的方式,通过项目工程目录右键打开对应的工程. 步骤如下: 打开注册表,使用快捷键"Win + R"打开运行窗口,然后在输入框内输入"regedit"回车,即可打开. 依次打开目录树:"HKEY_CLASSES_ROOT\Folder\shell" 右键"shell&qu

随机推荐