1、添加菜单

[MenuItem("Tools/MyTool")]

[MenuItem("Tools/MyTool", false, 10)]

优先级控制菜单的显示顺序,且优先级在同一范围内(好像是11)将显示在同一组,优先级在10左右的菜单项会显示在 Hierarchy 的右键菜单中,Assets菜单中菜单项会显示在 Project 的右键菜单中。

2、对指定组件添加右键菜单

[MenuItem("CONTEXT/UserManager/MyMenuName")]

其中,CONTEXT 是固定格式,UserManager 是要作用的组件名, MyMenuName 是生成的右键菜单项名。

在实现的方法中可以传入一个 MenuCommand 对象,该对象有两个属性,分别是 context 和 userData。通过将 context 强转成组件对象,就可以设置组件的属性。

强转分为直接强转和使用 as 强转,前者如果不能强转会报错,后者不会报错而只是返回一个空指针。

3、操作 Hierarchy 中选中的对象

Selection类,它有很多静态成员,可以用来获取 Hierarchy 面板中选中的对象。

Unity可以记录系统的一些操作,然后使用 Ctrl+Z 回滚,自己写的编辑器方法默认是不能回滚的,比如删除对象,这时要使用 Undo 类操作,如 Undo.DestroyObjectImmediate(obj);

4、快捷键

单键设置,必须要用下划线开头,比如设置 d 快捷键:

[MenuItem("Tool/MyTool _d")]

组合快捷键设置: %=ctrl    #=shift     &=alt,比如使用 Ctrl + D 快捷键:

[MenuItem("Tool/MyTool %d")]

5、如果要为自己写的脚本组件添加右键菜单,也可以直接在脚本里实现,只要在函数前面添加  [ContextMenu("MyMenuItemName")] 即可。

为指定字段添加右键菜单项,可以在字段前添加 [ContextMenuItem("MyMenuItemName", "FunctionName")],这样就会调用 FunctionName中的方法。

UnityEditor的更多相关文章

  1. `UnityEditor.EditorUtility' does not contain a definition for `GetMiniThumbnail'

    I got the following errors with Untiy 4.0f7error CS0117: `UnityEditor.EditorUtility' does not contai ...

  2. 【Unity3D】生成工程报错解决—UnityEditor.HostView:OnGUI() Error building Player: Couldn't build player because of unsupported data on target platform.

    错误 错误1:An asset is marked as dont save, but is included in the build: unityEditor.HostView:OnGUI() 错 ...

  3. Unity3d UnityEditor EditorWindow 自定义窗体控件

    功能:是因为公司的模型组需要一个插件,在MAYA中有很多个复制物体,导出的时候只导出一个,其他相同的物体只导出点的位置信息.这样进入Unity里就是一个物体和N个相同物体的位置点,代码简单但是需要用插 ...

  4. 使用了UnityEditor中的API,打包时却不能打包UnityEditor的问题

    前段时间写了一篇名叫<Unity使用Windows弹窗保存图片>的文章 然而现在项目进入了测试阶段 就在发布的时候,这个地方出问题了 问题出在using UnityEditor; 如上文章 ...

  5. UnityEditor下文件操作方法汇总(Unity3D开发之二十四)

    猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/50595585 ...

  6. 【Unity编辑器】UnityEditor多重弹出窗体与编辑器窗口层级管理

    一.简介 最近马三为公司开发了一款触发器编辑器,对于这个编辑器策划所要求的质量很高,是模仿暴雪的那个触发器编辑器来做的,而且之后这款编辑器要作为公司内部的一个通用工具链使用.其实,在这款触发器编辑器之 ...

  7. Unity报错 : BCE0004: Ambiguous reference 'preview': CameraMotionBlurEditor.preview, UnityEditor.Editor.preview.

    建立项目版本为Unity4.6,改为5.3.4版本,运行项目报如下错误: “BCE0004: Ambiguous reference 'preview': CameraMotionBlurEditor ...

  8. UnityEditor研究学习之EditorWindow

    在unity使用过程中,其实我们都是在各个不同功能的Window下工作. 比如在Scene窗口中操作物体,在Inspector中操作物体属性,在Game视窗中观察游戏状态. 所以窗口是Unity的灵魂 ...

  9. UnityEditor研究学习之自定义Editor

    UnityEditor研究学习之自定义Editor 今天我们来研究下Unity3d中自定义Editor,这个会让物体的脚本在Inspector视窗中,产生不同的视觉效果. 什么意思,举个例子,比如游戏 ...

  10. (转)Unity3d UnityEditor编辑器定制和开发插件

    在阅读本教程之前,你需要对Unity的操作流程有一些基础的认识,并且最好了解内置的GUI系统如何使用. 如何让编辑器运行你的代码 Unity3D可以通过事件触发来执行你的编辑器代码,但是我们需要一些编 ...

随机推荐

  1. 【只需3步】源码手动安装Apache以及配置(亲测可行)

    作者小波/QQ463431476欢迎转载! redhat6采用centos yum源. 第一步下载apache依赖的软件包并安装 安装 apr下载地址:http://apr.apache.org/do ...

  2. CANopen学习——同步

    在发送和接收之间必须相互协调和同步,为此,CANopen引入同步的概念. 同步报文:包含一个数据字节或者不含数据字节的CAN报文.数据字节中包含一个从1开始递增计数的同步计数器.溢出值可在参数(索引1 ...

  3. [LeetCode] Create Maximum Number 创建最大数

    Given two arrays of length m and n with digits 0-9 representing two numbers. Create the maximum numb ...

  4. 【wpf】缓存

    1.引用 System.Runtime.Caching 2.源 msdn //实例化MemoryCache类 ObjectCache cache = MemoryCache.Default; //读取 ...

  5. sql查询慢优化

    SELECT g.goods_id, g.type_id, g.user_id, g.productname, g.img, g.intro, g.attr, u.companyname, u.enl ...

  6. 【笔记】JS基础一

    名词解释 ECMAScript 翻译器,解释器 DOM 文档对象模型 Document Object Model 例如 document BOM 浏览器对象模型 Browser Object Mode ...

  7. php设计模式--面向对象

    php链式操作的实现: 特点:1.链式操作一般存在于面向对象的情况下链式操作才有意义 /* * SQL语句组合实例类,始发文章web开发笔记 * 学习用,非专业类 * */ class sql{ pr ...

  8. uva10635 LIS

    Prince and PrincessInput: Standard Input Output: Standard Output Time Limit: 3 Seconds In an n x n c ...

  9. PHP 之道

    http://wulijun.github.io/php-the-right-way/

  10. c# String.Join 和 Distinct 方法 去除字符串中重复字符

    1.在写程序中经常操作字符串,需要去重,以前我的用方式利用List集合和 contains去重复数据代码如下: string test="123,123,32,125,68,9565,432 ...