【Unity】Unity Editor菜单按钮扩展
来源:互联网 发布:ubuntu安装aria2 编辑:程序博客网 时间:2024/04/28 15:11
Unity官方教程:http://unity3d.com/cn/learn/tutorials/modules/intermediate/editor/menu-items?playlist=17090
本博客仅供自己记录要点,一切以官方文档为准。
我们可以通过
using UnityEngine;using UnityEditor;public class MenuItems{ [MenuItem("Tools/Clear PlayerPrefs")] private static void NewMenuOption() { PlayerPrefs.DeleteAll(); }}
来扩展已有/自定义菜单按钮,上述代码中的Tools可替换为Window这样的原有菜单项。
热键
% – CTRL on Windows / CMD on OSX
# – Shift
& – Alt
LEFT/RIGHT/UP/DOWN – Arrow keys
F1…F2 – F keys
HOME, END, PGUP, PGDN
eg.
// Add a new menu item with hotkey CTRL-SHIFT-A[MenuItem("Tools/New Option %#a")]private static void NewMenuOption(){}// Add a new menu item with hotkey CTRL-G[MenuItem("Tools/Item %g")]private static void NewNestedOption(){}// Add a new menu item with hotkey G[MenuItem("Tools/Item2 _g")]private static void NewOptionWithHotkey(){}
特殊路径
上面文章中讲到的按钮路径都是普通的位于菜单栏的按钮,但是Untiy是有一些特殊的路径的,比如:
Assets – items will be available under the “Assets” menu, as well using right-click inside the project view.(我们在Unity的Project下面右击会出现的)
Assets/Create – items will be listed when clicking on the “Create” button in the project view (useful when adding new types that can be added to the project)(Unity的Project目录下右击->Create下面)
CONTEXT/ComponentName – items will be available by right-clicking inside the inspector of the given component.(在面板上的组件上右击会出现)
Validation/验证?
有些按钮只有在右击某类东西时才会起作用,所以我们需要验证,例子如下
[MenuItem("Assets/ProcessTexture")]private static void DoSomethingWithTexture(){}// Note that we pass the same path, and also pass "true" to the second argument.[MenuItem("Assets/ProcessTexture", true)]private static bool NewMenuOptionValidation(){ // This returns true when the selected object is a Texture2D (the menu item will be disabled otherwise). return Selection.activeObject.GetType() == typeof(Texture2D);}
效果:只有在Texture2D上才会有用
按钮优先级
[MenuItem("NewMenu/Option1", false, 1)]private static void NewMenuOption(){}[MenuItem("NewMenu/Option2", false, 2)]private static void NewMenuOption2(){}[MenuItem("NewMenu/Option3", false, 3)]private static void NewMenuOption3(){}[MenuItem("NewMenu/Option4", false, 51)]private static void NewMenuOption4(){}[MenuItem("NewMenu/Option5", false, 52)]private static void NewMenuOption5(){}
效果:以10为单位一组
End.除此之外还有MenuCommand、ContextMenu、ContextMenuItem等几个类,跟MenuItem差不多,看顶上的链接吧,另外有
- 【Unity】Unity Editor菜单按钮扩展
- Unity Editor扩展
- Unity 扩展菜单命令
- Unity Editor 编辑器扩展 五 EditorGUI
- Unity Editor 编辑器扩展 六 EditorWindow
- Unity Editor 编辑器扩展 八 Undo
- Unity Editor 编辑器扩展 九 Gizmos
- Unity Editor 编辑器扩展 十 Handle控件
- Unity Editor 编辑器扩展 十二 OverWriter
- Unity编辑器扩展-菜单项
- Unity编辑器扩展-菜单项
- Unity编辑器扩展-菜单项
- 扩展Unity编辑器菜单指南
- Unity编辑器扩展-菜单项
- unity编辑器扩展--AssetBundle菜单
- 【Unity】Unity Editor Tips
- Unity Editor 编辑器扩展三 Unity Editor 数据持久化及Editor窗口的初识
- Unity扩展Editor菜单:提供一个统一的接口,来让策划调节prefab里相关脚本的数值
- 机器学习中的神经网络Neural Networks for Machine Learning:Lecture 4 Quiz
- 机器学习中的神经网络Neural Networks for Machine Learning:Lecture 5 Quiz
- 部署RTMP流媒体服务器,并使用FFMpeg命令行模式测试
- 机器学习中的神经网络Neural Networks for Machine Learning:Programming Assignment 2: Learning Word Representatio
- 似乎CRC校验也不是安全的
- 【Unity】Unity Editor菜单按钮扩展
- nod1001 数组中和等于k的数对问题
- 机器学习中的神经网络Neural Networks for Machine Learning:Lecture 6 Quiz
- 机器学习中的神经网络Neural Networks for Machine Learning:Lecture 7 Quiz
- 机器学习中的神经网络Neural Networks for Machine Learning:Lecture 8 Quiz
- 机器学习中的神经网络Neural Networks for Machine Learning:Lecture 9 Quiz
- 机器学习中的神经网络Neural Networks for Machine Learning:Programming assignment 3: Optimization and generaliza
- Codeforces edu 6. F Xors on Segments 枚举 优化技巧
- FTP 服务器(二)之vsftpd 服务器基础设定