「Unity3D」(9)自定义编辑器菜单扩展总结

添加菜单

[MenuItem("Tools/MyOption")]
private static void MyOption()
{
    // 自定义菜单Tools
}

[MenuItem("Tools/Sub/MyOption")]
private static void MyOption()
{
    // 子菜单
}

[MenuItem("Window/AAAOption")]
private static void MyOption()
{
    // 添加系统菜单(Window)的菜单项
}
添加菜单项的快捷键
  • % 代表 Ctrl 或 CMD
  • # 代表 Shift
  • & 代表 Alt
  • LEFT/RIGHT/UP/DOWN 代表方向键
  • F1 … F2 代表功能键
  • HOME, END, PGUP, PGDN 代表对应按键
  • _[a-z] 代表A-Z字符

以上每项快捷键可以组合使用,字符单独使用需要‘_’前缀,组合使用不需要‘_’前缀。快捷键冲突不会有提示,只会有一个被启用。

[MenuItem("Tools/Option1 %#a")]
private static void MyOption1()
{
    // CTRL + SHIFT + A
}


[MenuItem("Tools/Option2 %g")]
private static void MyOption2()
{
    // CTRL + G
}


[MenuItem("Tools/Option3 _g")]
private static void MyOption3()
{
    // G
}
添加右键上下文菜单,使用内置指定路径
  • Assets/ 工程视图右键菜单
  • Assets/Create/ 工程视图右键Create菜单
  • CONTEXT/ComponentName/ 属性面板对应组件的右键菜单

[MenuItem("Assets/MyAssetControl")]
private static void MyAssetControl()
{

}

[MenuItem("Assets/Create/MyAssetControl")]
private static void MyAssetControl()
{

}

[MenuItem("CONTEXT/Rigidbody2D/MyOption")]
private static void MyOption()
{

}
菜单禁用控制

[MenuItem("Tools/Option1")]
private static void Option1()
{

}

[MenuItem("Tools/Option1", true)]
private static bool CheckOption1()
{
    // 路径相同,返回可用性
    return false;
}
菜单项的排序与分组

[MenuItem("Tools/Option1", false, 2)]
private static void Option1()
{
}

[MenuItem("Tools/Option2", false, 1)]
private static void Option2()
{
}

[MenuItem("Tools/Option3", false, 21)]
private static void Option3()
{
}
属性面板组件的右键菜单,获取当前组件
[MenuItem("CONTEXT/Rigidbody2D/MyOption")]
private static void MyOption(MenuCommand menuCommand)
{
    // 获得当前组件对象
    var body2D = menuCommand.context as Rigidbody2D;
}
自定义组件右键菜单
  • 需要继承MonoBehaviour
  • 不能是static的方法

[ContextMenu("MyMenu")]
private void MyMenu()
{
}
自定义组件属性的右键菜单

[ContextMenuItem("Set Name", "SetName")]
public string myName;

private void SetName()
{
}
自定义组件加入组件菜单

[AddComponentMenu("MyComponent/Enemy")]
public class Enemy : MonoBehaviour
{
}

「扩展很简单」

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值