UD4SL1——Unity中添加菜单栏功能
UD4SL1——Unity中添加菜单栏功能
我们之后在学习通过Excel表生成数据的功能时,可以在菜单栏加一个按钮
点击后就可以自动为我们生成对应数据了
本章代码关键字
1 | [//菜单栏相关 ] |
为编辑器菜单栏添加新的选项入口
此知识点更新了更具体详细的描述,这里的描述也已迁移过去,因此请直接看:——> [MenuItem()]
可以通过Unity提供我们的
[MenuItem()]
特性在菜单栏添加选项按钮
特性名:[MenuItem()]
命名空间:UnityEditor
规则一:一定是静态方法
规则二:这个菜单栏按钮,必须有至少一个斜杠,不然会报错,它不支持只有一个菜单栏入口
规则三:这个特性可以用在任意的类当中特性填入的格式:
"菜单栏入口名/选项名/二级选项名/..."
,至少要有一个斜杠,否则报错!
1
2
3
4
5 [ ]
private static void Test()
{
Debug.Log("执行方法");
}效果如下:
点击后输出:
[MenuItem()]
共有三个参数,分别如下:
- 路径:
string
类型。用'/'
来分割路径- 是否是验证函数:
bool
类型,默认为false
,如果是验证函数,则本函数需要返回bool值,返回结果将决定该选项是否可用- 函数优先级:影响在面板上的出现顺序,默认为1000
关于验证函数:
第二个函数就是验证函数,其返回的
bool
值将决定第一个方法出现的选项是否可以点击,如果不能选择,那么第一个函数也将无法执行
1
2
3
4
5
6
7
8
9
10
11
12 [ ]
public static void Test()
{
Debug.Log("执行方法");
}
[ ]
public static bool ValidateTest()
{
//如果有选中一个transform,那么返回true,否则返回false。它的返回值,决定了跟它同路径的第一个方法是否可点击。
return Selection.activeTransform != null;
}
刷新Project窗口内容
此知识点更新了更具体详细的描述,因此请直接看:AssetDatabase.Refresh()
类名:
AssetDatabase
命名空间:UnityEditor
方法:Refresh
1
2
3
4
5
6 [ ]
private static void Refrush()
{
Directory.CreateDirectory(Application.dataPath + "/测试文件夹");
AssetDatabase.Refresh();
}
Editor文件夹
Editor文件夹可以放在项目的任何文件夹下,可以有多个,放在其中的内容,项目打包时不会被打包到项目中****一般编辑器相关代码都可以放在该文件夹中
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!