Editor Style Viewer

在开发过程中,我喜欢编写一些辅助的Editor插件,方便在游戏开发过程进行调试。

下面是摘自Asset Store的一个查看Unity 默认GUI样式的小工具

插件链接:Editor Style Viewer https://www.assetstore.unity3d.com/en/#!/content/3282

预览

Editor Style Viewer源码

原理:遍历所有的GUI.skin,并显示其样式

using UnityEngine;
using UnityEditor; /// <summary>
/// 查看默认的gui skin样式
/// </summary>
public class EditorStyleView : EditorWindow
{
private Vector2 scrollPosition = Vector2.zero;
private string search = string.Empty; [MenuItem("Tools/默认GUI样式查看器")]
static void Init()
{
var window= EditorWindow.GetWindow<EditorStyleView>();
window.title = "GUI样式查看器";
window.Show(); } void OnGUI()
{
GUILayout.BeginHorizontal("HelpBox");
GUILayout.Label("单击左侧样式将复制其名到剪贴板", "label");
GUILayout.FlexibleSpace();
GUILayout.Label("查找:");
search = EditorGUILayout.TextField(search);
GUILayout.EndHorizontal(); scrollPosition = GUILayout.BeginScrollView(scrollPosition); //foreach (GUIStyle style in GUI.skin.customStyles)
foreach (GUIStyle style in GUI.skin)
{
//过滤
if (style.name.ToLower().Contains(search.ToLower()))
{
//设置奇偶行不同背景
GUILayout.BeginHorizontal("PopupCurveSwatchBackground");
GUILayout.Space();//左边留白20
if (GUILayout.Button(style.name, style))
{
//把名字存储在剪粘板
EditorGUIUtility.systemCopyBuffer = style.name; // "\"" + style.name + "\"";
}
GUILayout.FlexibleSpace();
EditorGUILayout.SelectableLabel("\"" + style.name + "\"");
GUILayout.EndHorizontal();
GUILayout.Space();//右边留白20
}
} GUILayout.EndScrollView();
}
}

GM编辑器插件

比如这样的GM小工具,辅助开发团队。

1、创建GMEditorWindow.cs,放在Editor目录下

2、编写与游戏相关的逻辑功能

GM编辑器插件源码

[MenuItem("Game/GM指令")]
static void Init()
{
var window = EditorWindow.GetWindow<GMEditorWindow>();
window.title = "XX GM指令";
window.Show();
} private int newExp = , newMoney = , newVip = , newVp = , newCoin = , newSpirts = ;
private int maxHp = , maxVp = ,maxHurt=; private int nMapId = ; public void OnGUI()
{
EditorGUILayout.LabelField("== 加数值 指令 =="); GUILayout.BeginHorizontal();
GUILayout.Label("经验:");
newExp = EditorGUILayout.IntField(newExp, GUILayout.ExpandWidth(true), GUILayout.MinHeight());
if (GUILayout.Button("加经验", GUILayout.MinWidth(), GUILayout.MaxHeight()))
{
AddExp(newExp);
}
//-------
GUILayout.Label("VIP钱:");
newVip = EditorGUILayout.IntField(newVip, GUILayout.ExpandWidth(true), GUILayout.MinHeight());
if (GUILayout.Button("加VIP", GUILayout.MinWidth(), GUILayout.MaxHeight()))
{
AddVip(newVip);
}
GUILayout.EndHorizontal(); GUILayout.BeginHorizontal();
GUILayout.Label("金币:");
newCoin = EditorGUILayout.IntField(newCoin);
if (GUILayout.Button("加金币", GUILayout.MinWidth(), GUILayout.MaxHeight()))
{
AddCoin(newCoin);
}
//-------
GUILayout.Label("元宝");
newMoney = EditorGUILayout.IntField(newMoney);
if (GUILayout.Button("加元宝", GUILayout.MinWidth(), GUILayout.MaxHeight()))
{
AddMoney(newMoney);
}
GUILayout.EndHorizontal();
//后面继续....
}

编写 Unity Editor 插件的更多相关文章

  1. 开发unity DLL插件

    最近开发一款设备的SDK,想着要开发unity版本,怎么做呢?首先想到的就是在外部编写相关的驱动程序然后集成成几个dll作为unity的SDK使用了.So,我就开始了unity外部插件的研究之旅了. ...

  2. 自己编写Android Studio插件 别停留在用的程度了(转载)

    转自:自己编写Android Studio插件 别停留在用的程度了 1概述 相信大家在使用Android Studio的时候,或多或少的会使用一些插件,适当的配合插件可以帮助我们提升一定的开发效率,更 ...

  3. 用jquery编写的分页插件

    用jquery编写的分页插件 源码 function _pager_go(total_page) { var page_str = $("#_pager_textbox").val ...

  4. 用jquery编写的tab插件

    用jquery编写的tab插件 源码 $.fn.ss_tab = function (options) { var box = $(this); var btns = $(this).find(&qu ...

  5. 如何自己编写一个easyui插件续

    接着如何自己编写一个easyui插件继续分享一下如何从上一节写的“hello”插件继承出一个“hello2”. 参考了combobox的源码中继承combo,当然我这个简单很多了.都是根据自己的理解来 ...

  6. 用Javascript编写Chrome浏览器插件

    原文:http://homepage.yesky.com/62/11206062.shtml 用Javascript编写Chrome浏览器插件 2010-04-12 07:30 来源:天极网软件频道 ...

  7. 在Eclipse中使用Propertites Editor插件来解决property文件中文显示乱码

    在一般情况下,propertites文件在eclipse中的显示中文一直显示乱码,想要解决这个问题,需要通过在eclipse中安装一个Propertites Editor插件来进行解决. 在Eclip ...

  8. 如何编写一个gulp插件

    很久以前,我们在"细说gulp"随笔中,以压缩JavaScript为例,详细地讲解了如何利用gulp来完成前端自动化. 再来短暂回顾下,当时除了借助gulp之外,我们还利用了第三方 ...

  9. 使用canvas编写时间轴插件

    使用canvas编写时间轴插件 背景 项目中有一个视频广场的功能,需要一个时间轴类似视频播放中进度条功能一样显示录像情况,并且可以点击.拖动.放大缩小展示时间轴,获取到时间轴的某个时间.原来的时间轴是 ...

随机推荐

  1. HTML滚动字幕代码参数详解及Js间隔滚动代码

    html文字滚动代码 <marquee style="WIDTH: 388px; HEIGHT: 200px" scrollamount="2" dire ...

  2. SharePoint Online 创建门户网站系列之定制栏目

    前 言 SharePoint Online自带的库就带有二级页面和详细页面,也就是Allitems页面和DispForm页面,但是实在不够美观,尤其对于门户网站这一企业门面来说,更是无法接受. 下面, ...

  3. 检测Xcode是否有问题

    之前的XCode中毒事件闹得沸沸扬扬,在网上找到检测XCode完整性的方式,有需要的小伙伴试试吧.忘记哪里转的了,愧对原创者 在终端输入 spctl 命令,并带上安装的 Xcode 的路径: spct ...

  4. C语言中qsort函数的应用

    qsort函数包含在<stdlib.h>的头文件里,本文中排序都是采用的从小到大排序 一.对int类型数组排序 ]; int cmp ( const void *a , const voi ...

  5. 一起来学习Android自定义控件1

    概述 Android已经为我们提供了大量的View供我们使用,但是可能有时候这些组件不能满足我们的需求,这时候就需要自定义控件了.自定义控件对于初学者总是感觉是一种复杂的技术.因为里面涉及到的知识点会 ...

  6. 【代码笔记】iOS-竖排文字

    一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. ...

  7. 【代码笔记】iOS-后台运行,可以选择在前台或后台或前后台

    一,工程图. 二,代码. AppDelegate.h AppDelegate.m RootViewController.h #import <UIKit/UIKit.h> @interfa ...

  8. android Gui系统之SurfaceFlinger(5)---Vsync(2)

    9.Vsync第二部分 在上一篇中我们讲到,视图的刷新需要很多步骤, void SurfaceFlinger::handleMessageRefresh() { ATRACE_CALL(); preC ...

  9. 16、总经理要阅读的书籍 - IT软件人员书籍系列文章

    总经理是公司的一个领导角色.他主要负责公司级别的比如规划,战略等等内容.有些公司的总经理,比如软件公司的总经理,往往是一个大的业务员,将更多的大型的软件项目投取过来,让公司能够有钱赚,让公司员工能够跟 ...

  10. Java开发人员最常犯的10个错误

    这个列表总结了10个Java开发人员最常犯的错误. Array转ArrayList 当需要把Array转成ArrayList的时候,开发人员经常这样做: List<String> list ...