看别人在Unity的编辑器上添加菜单那么帅,我也要给Unity添加菜单

简介: 今天分享,如何添加自定义菜单栏,效果如下图所示。第一种,在Component组件菜单下面:第二种,添加到编辑器的菜单栏下:

一、前言

今天分享,如何添加自定义菜单栏,效果如下图所示。

第一种,在Component组件菜单下面:

网络异常,图片无法展示
|

第二种,添加到编辑器的菜单栏下:

网络异常,图片无法展示
|


二、添加组件菜单

有两个重载函数:

网络异常,图片无法展示
|
第一种,不带参数实现:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
[AddComponentMenu("Tools/自定义菜单")]
public class addTest : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
    }
    // Update is called once per frame
    void Update()
    {
    }
}
复制代码

第二种,使用参数:

menuName:菜单名 order:排序

public AddComponentMenu(string menuName, int order);
复制代码

比如说,我在Tools菜单下有很多个子菜单,但是为了控制它们之间的排序情况,就可以使用order参数,如下所示:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
[AddComponentMenu("Tools/自定义菜单1",1)]
public class addTest : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
    }
    // Update is called once per frame
    void Update()
    {
    }
}
复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
[AddComponentMenu("Tools/自定义菜单2",2)]
public class addTest2 : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
    }
    // Update is called once per frame
    void Update()
    {
    }
}
复制代码

这样,自定义菜单1就会一直排在自定义菜单2的前面了。

网络异常,图片无法展示
|


三、添加菜单栏菜单

代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
public class addTest : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
    }
    // Update is called once per frame
    void Update()
    {
    }
    [MenuItem("Tools/菜单栏菜单")]
    static void Test()
    {
    }
}
复制代码

网络异常,图片无法展示
|

当然,这个也可以使用priority参数排序优先级。 isValidateFunction验证函数: 如果isValidateFunction为 true,它将表示一个验证 函数,并在系统调用具有相同 itemName 的菜单函数之前进行调用。

网络异常,图片无法展示
|
这里就不演示了,有需要可以验证一下。



相关文章
|
3月前
|
图形学 开发者 存储
超越基础教程:深度拆解Unity地形编辑器的每一个隐藏角落,让你的游戏世界既浩瀚无垠又细节满满——从新手到高手的全面技巧升级秘籍
【8月更文挑战第31天】Unity地形编辑器是游戏开发中的重要工具,可快速创建复杂多变的游戏环境。本文通过比较不同地形编辑技术,详细介绍如何利用其功能构建广阔且精细的游戏世界,并提供具体示例代码,展示从基础地形绘制到植被与纹理添加的全过程。通过学习这些技巧,开发者能显著提升游戏画面质量和玩家体验。
152 3
|
3月前
|
开发者 图形学 开发工具
Unity编辑器神级扩展攻略:从批量操作到定制Inspector界面,手把手教你编写高效开发工具,解锁编辑器隐藏潜能
【8月更文挑战第31天】Unity是一款强大的游戏开发引擎,支持多平台发布与高度可定制的编辑器环境。通过自定义编辑器工具,开发者能显著提升工作效率。本文介绍如何使用C#脚本扩展Unity编辑器功能,包括批量调整游戏对象位置、创建自定义Inspector界面及项目统计窗口等实用工具,并提供具体示例代码。理解并应用这些技巧,可大幅优化开发流程,提高生产力。
361 1
|
5月前
|
前端开发 JavaScript PHP
【vscode编辑器插件】前端 php unity自用插件分享
【vscode编辑器插件】前端 php unity自用插件分享
38 0
|
5月前
|
存储 缓存 开发工具
初识Unity——unity的安装以及工程介绍(安装unity hub、版本选择、中文设置、安装编辑器、Assets文件、Library 文件、[ProjectName].sln 文件)
初识Unity——unity的安装以及工程介绍(安装unity hub、版本选择、中文设置、安装编辑器、Assets文件、Library 文件、[ProjectName].sln 文件)
1472 0
|
6月前
|
IDE 持续交付 vr&ar
Unity编辑器扩展
Unity编辑器扩展
|
6月前
|
缓存 图形学 异构计算
【#Unity Shader#Amplify Shader Editor(ASE)_第二篇】
【#Unity Shader#Amplify Shader Editor(ASE)_第二篇】
|
6月前
|
存储 搜索推荐 C#
Unity编辑器扩展
Unity编辑器扩展
47 0
|
6月前
|
前端开发 图形学
【#Unity Shader#Amplify Shader Editor(ASE)_第一篇】
【#Unity Shader#Amplify Shader Editor(ASE)_第一篇】
|
前端开发 C# 开发工具
Unity快手上手【熟悉unity编辑器,C#脚本控制组件一些属性之类的】
Unity快手上手【熟悉unity编辑器,C#脚本控制组件一些属性之类的】
156 0