欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Unity扩展Hierachry的右键菜单

程序员文章站 2023-11-21 13:02:04
游戏制作到一定阶段后,一定会出现一些gameobject的“模板”。比如一个敌人一定会有一个“enemy behaviour”、“box collider”等。虽然pref...

游戏制作到一定阶段后,一定会出现一些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之间,就可以同时出现在两个菜单中。

Unity扩展Hierachry的右键菜单

Unity扩展Hierachry的右键菜单

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