UnityEditor扩展开发_右键菜单很详细说明,以及优先参数的一张图

Posted avi9111

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UnityEditor扩展开发_右键菜单很详细说明,以及优先参数的一张图相关的知识,希望对你有一定的参考价值。

游戏制作到一定阶段后,一定会出现一些GameObject的“模板”。比如一个敌人一定会有一个“Enemy Behaviour”、“Box Collider”等。虽然Prefab可以用来作为“预制件”,但是Prefab产生的物体和Prefab自身有关联,同时还要从Project菜单里去找到Prefab再拖出来。
一个解决方案是扩展编辑器菜单,就像右键Hierachry时出现的3D Object、2D Object一样。可以创造GameObject的菜单有两个,一个是顶部菜单的GameObject,另一个是Hierachry的右键菜单。
在 https://unity3d.com/cn/learn/tutorials/topics/interface-essentials/unity-editor-extensions-menu-items 的文章中提到了如何扩展顶部菜单.

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

但是没有提到Hierachry右键菜单的扩展。
在 Adding to the context menu of the hierarchy tab? - Unity Answers 中的文章提到,Hierachry右键菜单其实来自于顶部GameObject的菜单,只是截取了其中的“一段”。如果要扩展,只需要把添加到GameObject菜单的菜单项的优先级设置到这“一段”之间即可。这样就可以同时出现在GameObject菜单和Hierachry右键菜单中了。

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

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

以上是关于UnityEditor扩展开发_右键菜单很详细说明,以及优先参数的一张图的主要内容,如果未能解决你的问题,请参考以下文章

unityEditor扩展开发onGUI添加右键菜单

UnityEditor扩展-右键拷贝资源路径到系统剪贴板

UnityEditor扩展开发删除missing script

UnityEditor

UnityEditor编辑器扩展开发之一些有用的Gizmos扩展方法

UnityEditor编辑器扩展开发之类似于Inspector面板_Script的GameObject写法