查看: 665|回复: 0
打印 上一主题 下一主题

[其他] (转载)如何玩转Unity菜单栏

[复制链接]

9903

主题

126

听众

7万

积分

首席设计师

Rank: 8Rank: 8

纳金币
53488
精华
316

最佳新人 热心会员 灌水之王 活跃会员 突出贡献 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2016-1-26 23:58:57 |只看该作者 |倒序浏览
如何玩转Unity菜单栏具体内容大家辛苦下,看一下下面的代码就明白了,各种注释我都标注的很详细了。唯一遗憾的是不清楚菜单栏横杆的设置技巧。望懂得大神们指导一下。
  1. using UnityEngine;
  2. using System.Collections;
  3. using UnityEditor;

  4. public class MenuTest : MonoBehaviour
  5. {
  6.     #region 演示添加一个菜单,设置log颜色
  7.     // 菜单选择一个按钮,下面做一些处理
  8.     [MenuItem("MenuTest/ShowLog")]
  9.     static void ShowLog()
  10.     {
  11.         Debug.Log("Show Log-------------------------");                                 // 默认白色
  12.         Debug.Log("Show Log<color=red>-------------------------</color>");              // 红色(系统默认支持)
  13.         Debug.Log("Show Log<color=#00ff00>-------------------------</color>");          // 绿色(自己设置颜色值)
  14.     }
  15.     #endregion

  16.     #region 演示如何控制一个菜单是否可以被点击
  17.     // 控制菜单选项是否可以被选择
  18.     [MenuItem("MenuTest/CheckSelect")]
  19.     static void SelectObject()
  20.     {
  21.         Debug.Log(Selection.activeObject.name);
  22.     }
  23.     // 用来控制CheckSelect菜单是否处于可选状态
  24.     [MenuItem("MenuTest/CheckSelect", true)]
  25.     static bool ValidateSelectObj()
  26.     {
  27.         return null != Selection.activeObject;
  28.     }
  29.     #endregion

  30.     #region 演示如何给菜单添加快捷键
  31.     // 为菜单添加快捷键 Ctrl+g/G 大小写通用
  32.     [MenuItem("MenuTest/QuickDoSomething %g")]
  33.     static void DoSomething()
  34.     {
  35.         //---------------组合键详解-------------------
  36.         // %代表Ctrl键(mac机上面是cmd键)  #代表Shirt键   &代表Alt键
  37.         // 上面这几个键可以单个使用,也可以多个一起使用,甚至3个全部用上也是可以的
  38.         //
  39.         // 还有一种用法,单独一个字符的,     _ 一个下划线
  40.         // 比方说 _g 这样就代表着按下G键可以了,但是需要大写,也就是说你可以按Shirt+g键
  41.         // 或者先打开大小写锁定键,切换到大写输入,然后单独按一个g键也可

  42.         Debug.Log("Do Something !");                             // 默认白色
  43.     }
  44.     #endregion

  45.     #region 演示如何控制菜单次序
  46.     // 选择菜单顺序3
  47.     [MenuItem("MenuTest/ShowLog_3", false, 3)]
  48.     static void ShowLog3()
  49.     {
  50.         Debug.Log("Show Log-----------3--------------");                             // 默认白色
  51.     }

  52.     // 选择菜单顺序2
  53.     [MenuItem("MenuTest/ShowLog_2", false, 2)]
  54.     static void ShowLog2()
  55.     {
  56.         Debug.Log("Show Log-----------2--------------");                             // 默认白色
  57.     }
  58.     // 选择菜单顺序1
  59.     [MenuItem("MenuTest/ShowLog_1", false, 1)]
  60.     static void ShowLog1()
  61.     {
  62.         Debug.Log("Show Log-----------1--------------");                             // 默认白色
  63.     }
  64.     #endregion

  65.     #region 演示如何在Inspector界面添加菜单选项
  66.     // 在Inspector界面增加菜单选项,(这里在Rigidbody组件下增加一个菜单选项)
  67.     [MenuItem("CONTEXT/Rigidbody/DoubleMass")]
  68.     static void DoubleMass(MenuCommand command)
  69.     {
  70.         Rigidbody body = command.context as Rigidbody;
  71.         if (null != body)
  72.             body.mass = body.mass*2;
  73.     }
  74.     #endregion

  75. }
复制代码
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏1 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-12 03:21 , Processed in 0.353606 second(s), 29 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部