Editor_MenuItem学习01

来源:互联网 发布:如何分析销售数据 编辑:程序博客网 时间:2024/06/06 03:09
using UnityEditor;public class Edit_Tools {    /*开始之路,1.有project中建立Editor文件,建立脚本    2.导入using UnityEditor;     3. 要使用到MenuItem这个类,引号里面的就菜单的目录    */    //把按钮添加到菜单栏[新的一个]    [MenuItem("EditTools/ShowTest")]   static void ShowTest()    {        Debug.LogError("show");    }    [MenuItem("EditTools/ShowTestNew",false,15)]    static void ShowTestNew()    {        Debug.LogWarning("MenuItem 最后一个参数是 显示的优先集,相差11 之后就会出一条线");    }    //把按钮添加到菜单栏[系统内部]    [MenuItem("Window/ShowWindowTool")]    static void WindowTools()    {        Debug.LogWarning("系统内置那一栏的");    }    [MenuItem("Assets/assetbuttonShow")]    static void ShowAssetsButton()    {        Debug.LogWarning("Assest 内置那一栏的,在Project中右击可以出现");    }    [MenuItem("GameObject/ShowMyGO",false,10)]    static void ShowGameObjectButton()    {        Debug.LogWarning("GameObject 内置那一栏的,在Hierarch视图中右击可以出现,第三个参数在10左右才能出现");    }}

自定义的EditTools,大于11会出一条横线

Hierarchy视图,第三个参数为10

Project视图

 //------------------------------------------------    [MenuItem("CONTEXT/PlayerHealth/ModifyHealth")]    static void ScriptAddComponent()    {        Debug.LogError("在属性面板针对某一脚本右键显示出ModifyHealth,进行操作");    }

这里写图片描述

//自己写的脚本,很多地方用到,很多值,一个个输入,麻烦,直接用Editor操作[MenuItem("CONTEXT/PlayerHealth/ModifyHealthValue")]    static void ScriptComponentHealth(MenuCommand cmd)//cmd当前操作的组件    {        Debug.LogError("修改值啦,类型="+cmd.context.GetType().FullName);//得到名字,有些有命名空间的        CompleteProject.PlayerHealth helath = (CompleteProject.PlayerHealth)cmd.context;        helath.startingHealth = 10;//修改健康值        helath.flashSpeed = 10;            }    [MenuItem("CONTEXT/Rigidbody/ClearMass")]//清除重力    static void CleartMassAndGravity(MenuCommand cmd)    {        Rigidbody rb = cmd.context as Rigidbody;        rb.mass = 0;        rb.useGravity = false;        Debug.LogError("清除组件的重力");    }
原创粉丝点击