目录
2.ContextMenu和ConTextMenuItem:
备忘:Unity编辑器常用路径
// System.Environment.CurrentDirectory : 在Unity中指工程的跟目录,即与Assets目录是平级的。
ex:
BuildPipeline.BuildPlayer(scenes, System.Environment.CurrentDirectory+"xcode", BuildTarget.iOS, BuildOptions.None);
1.MenuItem使用方法
♦ 参数
MenuItem("Tools/Test", true, 23):
1.菜单路径,以/分割;
2.是否为验证函数,默认为false;
3.菜单的优先级,数字越小显示在越上方。并且俩相邻菜单间差距为11以上的优先级会被分为两组,即菜单间会多个分隔线。默认为1000。
♦ 菜单的快捷键
单独的一个按键以“空格 + 下划线 + 想要的按键”增加在路径后缀,空格千万不要忘记。
“Tools/Test _g”,即在Unity中按下g就可以直接执行该菜单。
以“Tools/Test %&g”表示按住ctrl和alt,再按下g就能触发。特殊符号:%(ctrl/cmd)、#(shift)、&(alt)。
其他支持的按键:LEFT、RIGHT、UP、DOWN、F1..F12、HOME、END、PGUP、PGDN。
当然也支持类似#LEFT是左shift之类的按键。
♦ 菜单使用注意
1.创建GameObject时,使用GameObjectUtility.SetParentAndAlign方法设置父节点,可以重置坐标;
2.使用类似于Undo.RegisterCreatedObjectUndo方法注册撤销操作(这个我们之后在讨论)。
.Unity编辑器工具栏扩展;
[MenuItem("Tools/Test", false, 23)]
public static void Test()
{
Debug.Log("Test");
}
[MenuItem("Tools/Test", true, 23)]
public static bool ValidateTest()
{
return true;
}
.Inspector工具栏扩展;
为脚本右键添加菜单
[MenuItem("CONTEXT/Transform/Test4")]
public static void Test4()
{
Debug.Log("Test4");
}
.Hierarchy工具栏扩展;
Hierarchy窗口下的右键菜单就是GameObject菜单栏中的部分菜单
[MenuItem("GameObject/Test2", false, 11)]
public static void PasteTRValue()
{
Debug.Log("Test2");
}
.Project工具栏扩展。
Project中的是Assets所有的。
[MenuItem("Assets/Test3", false)]
public static void Test3()
{
Debug.Log("Test3");
}
2.ContextMenu和ConTextMenuItem:
Inspector窗口中添加菜单,但与MenuItem不同的是写在本身Component脚本中,也就是隶属于UnityEngine
♦ ContextMenuItem参数
ContextMenuItem("Add Hour", "AddHour", order = 1):
1.菜单的名称;
2.菜单执行的方法,要求脚本中必须有;
3.按钮的先后顺序。
using UnityEngine;
public class Clock : MonoBehaviour
{
//在右键变量名称时添加菜单
[ContextMenuItem("Add Hour", "AddHour", order = 1)]
public int Hour = 10;
public void AddHour()
{
Hour += 1;
}
[ContextMenu("Sub Hour", false, 10)]
public void SubHour()
{
Hour -= 1;
}
}