一、概述

unity自己本身就是一个大的程序,我们看见的所有功能,都是用程序写出来的,但是根据各行各业不同的需求,有些时候我们制作时,想要自己编辑一些原有的功能。

二、本节目标+效果展示

1.在菜单栏加入属于自己的一行

2.在菜单栏内加入子菜单

3.在子菜单当中加入子菜单

4.点击后,程序有Debug响应

unity点击collider弹出ui unity点击按钮出现菜单_编辑器

 三、具体流程

1.因为这个不是unity在运行时的代码,所以我们要把我们熟悉的MonoBehaviour删除

unity点击collider弹出ui unity点击按钮出现菜单_unity_02

变成:

unity点击collider弹出ui unity点击按钮出现菜单_unity点击collider弹出ui_03

2.因为我们是希望编辑unity所以我们要加入编辑unity的大类

unity点击collider弹出ui unity点击按钮出现菜单_unity点击collider弹出ui_04

3.我们先写一个方法,完成之前的功能

static void Answer()
    {
        Debug.Log("菌菌巧乐兹说:没错,你说的对");
    }

我们用的静态方法,关于静态方法和动态方法,我们暂时简单理解为,调用的时候,静态方法调用起来是不需要脚本在场景里存在的,有了方法,知道脚本名称,可以直接调用,但是动态方法,就必须在物体上挂一个脚本,而且运行起来才能用。

这个理解肯定不是很对,但咱们暂时这么理解。那么这里我们没有把脚本挂在物体上,因为这个脚本需要不运行的时候使用,也不能出现在场景里,我们只是编辑unity我们不是编辑要制作的程序用的,就只能用静态方法。

4.在菜单栏里加入我们想要的菜单和按钮

[MenuItem("第一节课/菌菌巧乐兹/是个小可爱?")]

 MenuItem是菜单的意思,里面中文被“/”分开,依次是第一层按钮名字,第二层,第三层......

你可以无限加下去。

你也可以加在已有菜单里,例:

[MenuItem("Tools/菌菌巧乐兹/是个小可爱?")]

unity点击collider弹出ui unity点击按钮出现菜单_unity点击collider弹出ui_05

 5.最后一步

然后,把第四条的[MenuItem("第一节课/菌菌巧乐兹/是个小可爱?")],放在想执行的方法上面,就成功啦。

四、所有代码

using UnityEditor;
using UnityEngine;

public class Tools 
{
    [MenuItem("Tools/菌菌巧乐兹/是个小可爱?")]
    static void Answer()
    {
        Debug.Log("菌菌巧乐兹说:没错,你说的对");
    }

}