1.1. 命名空间
using UnityEditor;
using UnityEngine;
1.2. 使用语法
[MenuItem("Assets/My Test")]
private static void Test()
{
Debug.Log("Hello World!")
}
语法说明
[MenuItem("path $t", Is, Priority)]
private static void Test1()
{}
[MenuItem("path _t", Is, Priority)]
private static void Test2()
{}
- path 是菜单路径;
- $t 是一个快捷键实例,在路径后面接空格,然后加上快捷键表示,单纯的一个按键快捷键按键字符前带下划线。该项非必需
- Is 设置为true的时候,如果没有选中游戏对象,会显示不可用状态,该选项非必需
- Priority 是优先级,数值越小优先级越高,非必需,其默认值为1000。
下面表示快捷键为"ctrl+h" 的实例。
[MenuItem("Assets/My Test %h")]
private static void Test()
{
Debug.Log("Hello World!")
}
1.3. Selection类
https://docs.unity3d.com/ScriptReference/Selection.html
1.3.1. 获取选中物体
Selection.Objects可以获得选中的物品。
1.3.2. 获取选中目录
string[] guids = Selection.assetGUIDs;
foreach ( var id in guids )
{
string path = AssetDatabase.GUIDToAssetPath(id);
if(Directory.Exists(path))
{
Debug.Log(string.format("Directory {0} exist", path))
}
}
1.4. 给控件添加右上角齿轮菜单增加功能
[MenuItem("CONTEXT/Rigidbody/wyg_test")]
private static TestRightButton()
{
Debug.Log("右键测试")
}
- CONTEXT 为固定写法;
- Rigidbody 是控件名称,可以修改为其他控件;
- 我使用中文的时候不知道为什么没有显示出来。
- 【本文由“程序员的爱”发布,2017年10月13日】
|