Unity编辑器扩展

Unity编辑器扩展


using UnityEditor;    //作为编辑器时的引用




1、添加菜单,需要静态方法
[MenuItem("Tools/Test")]
static void Test()
{
        
}


2、菜单的分类
[MenuItem("Tools/Test1", true, 1)]    (2)是否验证
static bool Test1()
{
    true //可以使用
    false //不可使用
}


[MenuItem("Tools/Test1", false, 1)]    (3)优先级,默认为1000,相差11可以加一条线进行分类
static void Test1()
{
    
}




3、组件增加右键菜单(脚本)
[MenuItem("CONTEXT/PlayerHealth/Init")] //1-固定  2-脚本名  3-按键名
static void Test(MenuCommand cmd) //MenuCommand是当前正在操作的组件
{
    PlayerHealth health = (PlayerHealth) cmd.context;//得到脚本
}


[ContextMenuItem("按键名", "执行方法")]
public int index = 0;


[ContextMenu("名字")] //可编辑脚本使用
void SetColor()
{
    
}


4、可撤销操作
Undo类,使用Undo操作的选中物体,可以进入撤销


5、增加快捷键
[MenuItem("Tools/test2 _t")]    // %=ctrl #=shift &=alt




6、对话框
public class Tools : ScriptableWizard
{
    [MenuItem("Tools/Win")]
    static void Creat()
    {
        ScriptableWizard.DisplayWizard<Tools>("哈哈哈", "Change Value", "第二个按键的名字");
    }


    public int hp = 100;
    public string name = "哈";


    void OnWizardCreate()   //监听create按键的点击
    {
	Undo.RecordObject(hp,"hp");//记录修改前的,可以用来撤销
        Debug.Log("11111");
    }

    void OnWizardOtherButton()//监听 第二个按键的名字
    {
        
    }

    ShowNotification(new GUIContent("1111111"));//弹框

    //窗口弹出、值修改调用
    void OnWizardUpdate()
    {
        helpString = "帮助信息";
        errorString = "错误信息";
    }

    //选择物体数量改变调用
    void OnSelectionChange()
    {
        
    }
}


8、显视进度条
EditorUtility类   工具类


EditorUtility.DisplayProgressBar("","",0.1f);     //标题    提示信息    当前进度
EditorUtility.ClearProgressBar();   //隐藏进度条
EditorUtility.DisplayCancelableProgressBar("", "", 0.1f);   //可以取消的进度条




9、自定义窗口
public class MyWindow : EditorWindow
{
    [MenuItem("Window/Show MyWindow")]
    static void ShowMyWindow()
    {
        MyWindow window = EditorWindow.GetWindow<MyWindow>();   //得到这个窗口类
        window.Show();
    }


    void OnGUI()    //使用OnGUI可以在自定义窗口中绘制
    {
        GUILayout.Label("");       //绘制类
        EditorGUILayout
        Undo.RegisterCompleteObjectUndo();      //记录操作  1-被操作的物体  2-名字,操作记录名    主要做撤销
    }
}








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值