Unity编辑器扩展之GenericMenu菜单扩展

本文详细介绍了如何在Unity编辑器的Scene、Hierarchy、Project和Game视图中添加自定义菜单,使用GenericMenu类创建并管理菜单项,以及提供相关示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内容将会持续更新,有错误的地方欢迎指正,谢谢!
 

Unity编辑器扩展之GenericMenu自定义菜单
     
TechX 坚持将创新的科技带给世界!

拥有更好的学习体验 —— 不断努力,不断进步,不断探索
TechX —— 心探索、心进取!

助力快速掌握 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 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沐沐森的故事

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值