Unity编辑器类

添加方法到相应的菜单栏
using UnityEngine;
using UnityEditor;
public class Tools {
[MenuItem("Tools/Test")]//通过MenuItem[“路径”]添加到相应菜单栏
static void Test() {//编辑器类的方法必需是static修饰,方法名是唯一的。
Debug.Log("Test");
}
}
编辑器中的分组
[MenuItem("Tools/Show Info",false,1)]
//其中有三个参数,第一个为路径,第二个为是否启用菜单项,第三个为优先级
** 系统默认的优先级是1000
分组的条件是第三个参数相差11,这个数值是为变的,固定要相差这么多

第二个参数的使用:
//TestDeleteBool方法为验证TestDelete方法是否可以运行。
//方法名不同,第二个参数要为true,其它要保持一致辞
[MenuItem("GameObject/Test Delete", true, 10)]
static bool TestDeleteBool()
{
if (Selection.objects.Length > 0)
{
return true;
}
else
{
return false;
}
}
[MenuItem("GameObject/Test Delete", false, 10)]
static void TestDelete() {
foreach (Object o in Selection.objects)
{
Undo.DestroyObjectImmediate(o);
}
}
添加方法到组件的右键菜单栏
using UnityEngine;
using UnityEditor;
public class PlayerEditor {

[MenuItem("CONTEXT/Rigidbody/Clear")]//CONTEXT/加组件名/加按扭名
static void ClearMassAndGravity(MenuCommand cmd)
{//MenuCommand为当前操作的组件
    Rigidbody rgd = cmd.context as Rigidbody;
    rgd.mass = 0;//更改组件上的变量值
    rgd.useGravity = false;
}

}
Selection(选择)类的应用
[MenuItem("Tools/Show Info",false,1)]
static void ShowInfo() {
Debug.Log(Selection.activeGameObject.name);//多选时只会得到第一个选择的物体(只在Hierarchy面板中有效)
}
具体参见API
撤消的类Undo
[MenuItem("GameObject/Test Delete", false, 10)]
static void TestDelete() {
foreach (Object o in Selection.objects)
{
Undo.DestroyObjectImmediate(o);//利用Undo进行删除操作是可以撤消的
}
}
给菜单添加快捷键
%代表Ctrl,#代表Shift,&代表alt
[MenuItem("Tools/Test t", false, 10)]//纯字母加字母就可以添加快捷键
[MenuItem("Tools/Test %t", false, 10)]//组合键加字母添加快捷键
关于ContextMenu和ContextMenuItem的使用
ContextMenu非UnityEditor下,直接写在非系统组件上的右键按扭。
[ContextMenu("SetColor")]//传入一个方法名
void SetColor() {
flashColour = Color.green;
}
ContextMenuItem在脚本中给变量添加右键菜单按扭
[ContextMenuItem("AddHp", "AddHp")]//第一个参数为按扭名,第二个为方法名,方法一定要存在
public int startingHealth = 100;
void AddHp()
{
startingHealth += 20;
}
创建窗口
创建窗口要继承ScriptableWizard

ScriptableWizard.DisplayWizard<Windows>("修改窗口","Change Value");//第一个参数为标题,第二个参数为按扭名称
添加检测方法
//检测Create按扭的点击,方法名必须是OnWizardCreate
void OnWizardCreate() {
Debug.Log("Done");
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,374评论 19 139
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,721评论 0 17
  • 原文地址:http://www.android100.org/html/201606/06/241682.html...
    AFinalStone阅读 4,652评论 0 1
  • 《向水投降》 我想顺从每一片流云 在我倦怠孤独的片刻 与我有关的瞬间,逐渐分明 雨水从来不会说出答案 它临幸一只狗...
    幽明m阅读 1,618评论 7 2
  • 从知道你在我的肚子里扎根至今,时间过的是那么快又那么慢,今天已经是28周了。我的的肚子从微微隆起到现在路人一眼能看...
    Rachel萧萧阅读 1,137评论 0 0