Unity的编辑器可以通过写脚本进行界面定制,包括添加功能菜单,今天写游戏Demo用到了记录一下。

为Unity添加子菜单

示例程序

[AddComponentMenu("Defend Homeland/GridNode")]
public class GridNode : MonoBehaviour
{......
}

子菜单预览

相应地在Unity的Component菜单下就会有我添加的脚本

在编辑器中执行函数

示例代码

    //构建地图[ContextMenu("BuildMap")]void BuildMap (){.....}

把脚本绑定在GameObject上面时,点击右上角或者鼠标右键,就会看到在代码中添加的函数,点击即可执行。

public字段不显示在Inspector

示例代码

    //不在Inspector显示[HideInInspector]public int m_life = 3;//生命public int m_wave = 1;//波数public int m_point = 10;//点数

效果预览

而这样在检视面板中就不会显示出m_life这个public类型,只有其它两个

自定义菜单栏

示例代码

using UnityEngine;
using UnityEditor;
using System.Collections;/// <summary>
///
/// 作用:
/// 日期:2013-09-11
/// </summary>[AddComponentMenu("Defend Homeland/PathTool")]
public class PathTool : ScriptableObject
{static PathNode m_parent = null;//新建一个菜单项【PathTool】,子菜单项(Set Parent)快捷键为 Ctrl + Q[MenuItem("PathTool/Set Parent %q")]static void SetParent (){//如果没有选中任何物体,或选择物体数量大于1,则返回if (!Selection.activeGameObject || Selection.GetTransforms (SelectionMode.Unfiltered).Length > 1)return;//如果选中,将选中的物体的tag设为pathnodeif (Selection.activeGameObject.tag.CompareTo ("pathnode") == 0) {//设置父节点m_parent = Selection.activeGameObject.GetComponent<PathNode> ();    }}//新建菜单项[PathTool/Set NextChild] ,快捷键为Ctrl+w[MenuItem("PathTool/Set NextChild %w")]static void SetNextChild (){//如果没有选中任何物体,或选择的物体数量大于1,则返回if (!Selection.activeGameObject || Selection.GetTransforms (SelectionMode.Unfiltered).Length > 1)return;if (Selection.activeGameObject.tag.CompareTo ("pathnode") == 0) {//设置子节点m_parent.SetNext (Selection.activeGameObject.GetComponent<PathNode> ());m_parent = null;}}
}

添加菜单效果

回到Unity编辑器界面,界面发生了如下变化

资料

这些经验及小技巧来自我正在读的书《Unity3D手机游戏开发,感谢作者!

转载于:https://www.cnblogs.com/zhaoqingqing/p/3315847.html

定制你的Unity编辑器相关推荐

  1. Unity编辑器定制和开发插件

    http://blog.csdn.net/a351945755/article/details/35286761 在阅读本教程之前,你需要对Unity的操作流程有一些基础的认识,并且最好了解内置的GU ...

  2. 【Unity优化】怎样实现Unity编辑器中的协程

    Unity编辑器中何时须要协程 当我们定制Unity编辑器的时候,往往须要启动额外的协程或者线程进行处理.比方当运行一些界面更新的时候,须要大量计算,假设用户在不断修正一个參数,比方从1变化到2.这种 ...

  3. Unity编辑器扩展: 程序化打图集工具

    开始前的声明:该案例中图集所使用图片资源均来源于网络,仅限于学习使用 一.前言 关于编辑器扩展相关的知识,在前面的两篇内容中做了详细的描述,链接地址: 第一篇 :Unity编辑器扩展 UI控件篇 第二 ...

  4. Unity编辑器扩展 UI控件篇

    前摇 :认识编辑器扩展的必要性 由于各种各样的原因,无论是移动端亦或是主机/PC端,进几年的发行的游戏体量是越来越大.通常来说大体量的游戏开发需要一套很成熟完善的工作流,亦或说有很强的工业化的能力,像 ...

  5. 实现Unity编辑器模式下的旋转

    最近在做一个模型展示的项目,我的想法是根据滑动屏幕的x方向差值和Y方向的差值,来根据世界坐标下的X轴和Y轴进行旋转,但是实习时候总是有一些卡顿.在观察unity编辑器下的旋转之后,发现编辑器下的旋转非 ...

  6. UNITY编辑器模式下static变量的坑

    UNITY编辑器模式下static变量的坑 在unity中写编辑器扩展工具,如在编辑器中加个菜单,点击这个菜单项时执行打包功能. 类如下,其中的静态变量,如果每次进来不清空,则LIST会越来越大,打包 ...

  7. Unity编辑器扩展之EditorWindow

    Unity编辑器扩展之EditorWindow 继承这个类的编辑器脚本可以用来创建一个编辑器窗口,类似Inspector窗口 若要在这个类中添加一些控件,可以使用GUI和GUILayout控件,还可以 ...

  8. 在Unity编辑器中开发遇到问题BUG如何调试解决?

    洪流学堂,让你快人几步.你好,我是跟着大智学Unity的萌新,我叫小新,今天给你分享一下大智的"葵花宝典".​ 最近遇到很多童鞋,在自己学习开发的时候,顺利的时候还好,一遇到问题就 ...

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

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

  10. 【Unity编辑器扩展实践】、扩展Hierarchy菜单

    扩展Hierarchy之后的效果: 我们调试战斗的时候,需要在Hierarchy界面选中对应的武将,然后操作快捷键控制武将.由于多个操作我觉得比较麻烦,就在网上查找了一下扩展Hierarchy菜单的方 ...

最新文章

  1. MySQL数据库开发常见问题及几点优化!
  2. c++把数组所有元素剔除_C语言基础之数组,第一节,C语言必学知识点剖析
  3. 编程入门到进大厂,你需要这套学习架构
  4. 中国有超3亿人存在睡眠障碍 收入越高睡眠越少
  5. 密码学研究-密钥长度限制
  6. yolov3代码详解_代码资料
  7. 扩展Asterisk1.8.7的CLI接口
  8. charles-无法抓取https包的解决办法及效果
  9. 云服务器配置(jdk、tomcat、mysql)
  10. 来了!苹果二代AirPods 3月发布 全黑配色加入
  11. JavaScript 特效代码集
  12. 平时多流汗,战时少流血
  13. 两步教你在安卓中快速使用矢量图
  14. Windows defender 中保护历史记录不显示始终为空的解决办法
  15. bundle install 出现 'gem install mysql2 -v '0.3.15' succeeds before bunding '
  16. 西北工业大学明德学院计算机老师,师资队伍结构
  17. Android指南针之加速度传感器地磁传感器
  18. 共享软件走向海外之路
  19. adas记录仪app_完爆行车记录仪,这款APP还能分析驾驶行为?老司机进来鉴定下...
  20. Python环境下使用MATLAB

热门文章

  1. java aes加密 cbc_AES加密,CBC模式,0填充
  2. mysql 主从 日志_mysql主从复制基于日志复制
  3. 关于四川2019ACM省赛热身赛B题的一个证明
  4. JAVA语言基础-面向对象(IO:IO字节流)
  5. 【C语言】一些面试题。
  6. 10个调试和排错的小建议
  7. Pytorch和caffe对maxpool模式ceil比较
  8. 【论文】Realtime lane tracking of curved local road 检测和跟踪功能
  9. numpy array
  10. DBN原理及实践-TensorFlow