UnityEditor
2016-12-28 16:10
113 查看
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中的方法。
[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中的方法。
相关文章推荐
- Unity开发项目应该一开始规划好哪些内容?如何避免后期巨坑?
- Unity3D中,Android应用的退出脚本。
- 【unity系统模块开发】跑马灯
- 【《Effective C#》提炼总结】提高Unity中C#代码质量的22条准则
- Unity3D -- Attribute 总结
- Unity3D 优化 1 ( cs 实例化与内存变化)
- PlayMaker语言切换
- unity粒子编辑器详解
- Unity输入法开启后导致键盘控制失效问题
- Unity3D延迟回调的封装
- Unity3D教程之Light光源
- unity 打包完成之后 (黑色控制台提示)
- Unity 设置材质属性事件
- Unity四种坐标系及转换
- Unity Shader学习笔记(四) 水气泡 Shader的实现
- Unity精品FPS手游《全民枪战》测评精讲
- unity中Toon(卡通)材质的下载与实现
- 游戏背景自适应屏幕分辨率
- C#程序员整理的Unity 3D笔记(十):Unity3D的位移、旋转的3D数学模型
- Unity加载模块深度解析之动画片段