博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编写 Unity Editor 插件
阅读量:6146 次
发布时间:2019-06-21

本文共 3228 字,大约阅读时间需要 10 分钟。

Editor Style Viewer

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

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

插件链接:Editor Style Viewer

 

预览

Editor Style Viewer源码

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

using UnityEngine;using UnityEditor;/// /// 查看默认的gui skin样式/// public class EditorStyleView : EditorWindow{    private Vector2 scrollPosition = Vector2.zero;    private string search = string.Empty;    [MenuItem("Tools/默认GUI样式查看器")]    static void Init()    {        var window= EditorWindow.GetWindow
(); 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);//左边留白20 if (GUILayout.Button(style.name, style)) { //把名字存储在剪粘板 EditorGUIUtility.systemCopyBuffer = style.name; // "\"" + style.name + "\""; } GUILayout.FlexibleSpace(); EditorGUILayout.SelectableLabel("\"" + style.name + "\""); GUILayout.EndHorizontal(); GUILayout.Space(20);//右边留白20 } } GUILayout.EndScrollView(); }}

 

GM编辑器插件

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

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

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

GM编辑器插件源码

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

转载地址:http://yumya.baihongyu.com/

你可能感兴趣的文章
架构师之路(一)- 什么是软件架构
查看>>
jquery的冒泡和默认行为
查看>>
USACO 土地购买
查看>>
【原创】远景能源面试--一面
查看>>
B1010.一元多项式求导(25)
查看>>
10、程序员和编译器之间的关系
查看>>
前端学习之正则表达式
查看>>
配置 RAILS FOR JRUBY1.7.4
查看>>
AndroidStudio中导入SlidingMenu报错解决方案
查看>>
修改GRUB2背景图片
查看>>
Ajax异步
查看>>
好记性不如烂笔杆-android学习笔记<十六> switcher和gallery
查看>>
JAVA GC
查看>>
3springboot:springboot配置文件(外部配置加载顺序、自动配置原理,@Conditional)
查看>>
9、Dubbo-配置(4)
查看>>
前端第七天
查看>>
图解SSH原理及两种登录方法
查看>>
[转载] 七龙珠第一部——第058话 魔境圣地
查看>>
【总结整理】JQuery基础学习---样式篇
查看>>
查询个人站点的文章、分类和标签查询
查看>>