内容将会持续更新,有错误的地方欢迎指正,谢谢!
拥有更好的学习体验 —— 不断努力,不断进步,不断探索 |
助力快速掌握 GenericMenu 菜单扩展 为初学者节省宝贵的学习时间,避免困惑! |
GenericMenu
是 Unity 中的一个强大的类,用于创建和管理自定义上下文菜单(也称为弹出菜单)。
可以使用 GenericMenu
来为编辑器中的不同场合或场景元素创建自定义右键单击菜单,以提供各种操作选项。
allowDuplicateNames | 允许菜单具有多个同名的菜单项。 |
AddDisabledItem | 向菜单添加已禁用的项。 |
AddItem | 向菜单添加一个项。 |
AddSeparator | 向菜单添加一个分隔符项。 |
DropDown | 在给定屏幕矩形中显示菜单。 |
GetItemCount | 获取菜单中的项数。 |
ShowAsContext | 右键单击时在鼠标下显示菜单。 |
MenuFunction | 回调函数,菜单项选中时调用。 |
MenuFunction2 | 带有用户数据的回调函数,菜单项选中时调用。 |
// 创建一个通用菜单
GenericMenu menu = new GenericMenu();
//添加一个不可用并且勾选的菜单项RGB/Blue
menu.AddDisabledItem(new GUIContent("RGB/Blue"), true);
//添加一个菜单项RGB/Red,并且传入一个有参回调
menu.AddItem(new GUIContent("RGB/Red"), false, OnColorSelected, Color.red);
//添加一个菜单项RGB/Green,并且传入一个无参回调
menu.AddItem(new GUIContent("RGB/Green"), true, OnColorSelected);
//添加一个分割线
menu.AddSeparator("");
//允许重命名
menu.allowDuplicateNames = true;
//添加两个名称一样的菜单项
menu.AddItem(new GUIContent("CMYK"), true, OnColorSelected);
menu.AddItem(new GUIContent("CMYK"), true, OnColorSelected);
// 以右键菜单的形式展示菜单
menu.ShowAsContext();
一、Scene视图添加自定义菜单
public class MyComponent : MonoBehaviour
{
[InitializeOnLoadMethod]
private static void SceneViewExtensions()
{
// 注册 SceneView 的回调函数
SceneView.duringSceneGui