- 最后登录
- 2021-7-6
- 注册时间
- 2012-12-27
- 阅读权限
- 90
- 积分
- 76145
- 纳金币
- 53488
- 精华
- 316
|
如何玩转Unity菜单栏具体内容大家辛苦下,看一下下面的代码就明白了,各种注释我都标注的很详细了。唯一遗憾的是不清楚菜单栏横杆的设置技巧。望懂得大神们指导一下。- using UnityEngine;
- using System.Collections;
- using UnityEditor;
- public class MenuTest : MonoBehaviour
- {
- #region 演示添加一个菜单,设置log颜色
- // 菜单选择一个按钮,下面做一些处理
- [MenuItem("MenuTest/ShowLog")]
- static void ShowLog()
- {
- Debug.Log("Show Log-------------------------"); // 默认白色
- Debug.Log("Show Log<color=red>-------------------------</color>"); // 红色(系统默认支持)
- Debug.Log("Show Log<color=#00ff00>-------------------------</color>"); // 绿色(自己设置颜色值)
- }
- #endregion
- #region 演示如何控制一个菜单是否可以被点击
- // 控制菜单选项是否可以被选择
- [MenuItem("MenuTest/CheckSelect")]
- static void SelectObject()
- {
- Debug.Log(Selection.activeObject.name);
- }
- // 用来控制CheckSelect菜单是否处于可选状态
- [MenuItem("MenuTest/CheckSelect", true)]
- static bool ValidateSelectObj()
- {
- return null != Selection.activeObject;
- }
- #endregion
- #region 演示如何给菜单添加快捷键
- // 为菜单添加快捷键 Ctrl+g/G 大小写通用
- [MenuItem("MenuTest/QuickDoSomething %g")]
- static void DoSomething()
- {
- //---------------组合键详解-------------------
- // %代表Ctrl键(mac机上面是cmd键) #代表Shirt键 &代表Alt键
- // 上面这几个键可以单个使用,也可以多个一起使用,甚至3个全部用上也是可以的
- //
- // 还有一种用法,单独一个字符的, _ 一个下划线
- // 比方说 _g 这样就代表着按下G键可以了,但是需要大写,也就是说你可以按Shirt+g键
- // 或者先打开大小写锁定键,切换到大写输入,然后单独按一个g键也可
- Debug.Log("Do Something !"); // 默认白色
- }
- #endregion
- #region 演示如何控制菜单次序
- // 选择菜单顺序3
- [MenuItem("MenuTest/ShowLog_3", false, 3)]
- static void ShowLog3()
- {
- Debug.Log("Show Log-----------3--------------"); // 默认白色
- }
- // 选择菜单顺序2
- [MenuItem("MenuTest/ShowLog_2", false, 2)]
- static void ShowLog2()
- {
- Debug.Log("Show Log-----------2--------------"); // 默认白色
- }
- // 选择菜单顺序1
- [MenuItem("MenuTest/ShowLog_1", false, 1)]
- static void ShowLog1()
- {
- Debug.Log("Show Log-----------1--------------"); // 默认白色
- }
- #endregion
- #region 演示如何在Inspector界面添加菜单选项
- // 在Inspector界面增加菜单选项,(这里在Rigidbody组件下增加一个菜单选项)
- [MenuItem("CONTEXT/Rigidbody/DoubleMass")]
- static void DoubleMass(MenuCommand command)
- {
- Rigidbody body = command.context as Rigidbody;
- if (null != body)
- body.mass = body.mass*2;
- }
- #endregion
- }
复制代码 |
|