编辑器扩展

前言:今天咱们学习编辑器扩展,你会发现原来unity是通过编辑器扩展做的,我们也可以通过今天编辑器扩展去实现制作自己的插件了,是不是很酷的体验=-=,废话不多说,开始吧~


1.创建一个脚本Test01

(1)设置滑条:

<1>在要修饰的变量前一行添加[Range(最小范围,最大范围)]    //取值范围左闭右开

<2>必须是public修饰的变量

(2)序列化:[SerializeField]

<1>必须是private修饰的变量

(3)在检视面板隐藏:[HideInInspector]

(4)添加组件:[RequireComponent(typeof(组件))]

<1>写在脚本的上方

<2>挂载脚本的时候组件被添加

(5)设定游戏对象参数不同情况的选择

1如果a是公有的序列化变量。

1.1如果你想要在面板中看到a,那么用:

public int a;1.2如果你不想在面板中看到a,那么用:

[HideInInspector]

public int a; // 这样a可以在程序中被代码赋值,但不会在面板中看到并手动设置赋值。

2 如果a是私有的序列化变量,你想在面板中读取并保存,那么用:

[SerializeField]

private int a;

3.如果a是私有的序列化变量,你想在面板中读取,但是不保存,那么用:

[HideInInspector]

[SerializedField]

private int a;

public int b { get{ return a; } }

然后在Editor中显示,EditorGUILayout.LabelField("value",game.B.ToString());

4如果a是私有序列化变量,你不想在面板中做任何操作(不想看到,也不想写),但是想要在程序中给它赋值,那么用。

[HideInInspector]

[SerializedField]

private int a;

public int b{ get { return a; } set { a = value; } }

由此可见,常态化都是用public 来注入一个对象,除非特殊需求用 [SerializedField],参考第2条。

参考文章:http://tieba.baidu.com/p/2815933897

2.创建一个脚本Test02

(1)添加菜单

<1>脚本取消继承MonoBehaviour类

<2>引用UnityEditor命名空间

<3>[MenuItem(菜单路径)]

1)菜单路径可以是自定义的

2)菜单路径必须有子菜单,如果没有子菜单会报错

3)菜单路径可以在系统的菜单路径下

<4>在[MenuItem(菜单路径)]的下一行必须有个静态的方法

1)当你点击了菜单路径下的菜单就会执行这个静态的方法,打印“点击”

2)注意:继承了MonoBehaviour才能用print打印;

                   没继承则使用Debug.Log打印

(2)添加窗口

<1>创建一个Rect数据(矩形数据)

<2>让脚本继承EditorWindow静态类(创建编辑窗口的类)

<3>EidtorWindow静态类

1)创建一个编辑窗口:类名.GetWindowWithRect(窗口类型,窗口位置,是否悬浮,窗口标题);

2)显示窗口:对象.Show();

3.创建脚本Test03,Test04

(1)往检视窗口中添加编辑器

<1>取消继承MonoBehaviour类

<2>引用UnityEditor命名空间

<3>继承Editor类(自定义编辑器类)

<4>自定义编辑器:[CustomEditor(typeof(组件名))]

1)CustomEditor属性告知Unity哪个组件需要表现为编辑器

<5>在编辑器下运行:[ExecuteInEditorMode]

<6>using UnityEditor:

1)Editor类

1.1)检视窗口:OnInspectorGUI()

1.1.1)表现出自定义编辑器默认设置:base.OnInspectorGUI();

默认的Test04脚本

1.2)被编辑的目标对象: 编辑的对象=traget;

1.2.1)转换类型:

方法一:类型 对象=target as 类型;

方法二:类型 对象=(类型)target;

2)EditorGUILayout类

2.1)自动排列编辑器界面类

2.2)绘制物体字段:绘制对象=类名.ObjectField(标题,绘制对象,typeof(绘制对象的类型),是否允许指定指定场景物体) as 绘制对象的类型;

2.3)绘制矩形字段:绘制的矩形对象=类名.RectField(标题,绘制的矩形对象);

绘制之后的Test04脚本

4.创建脚本Test05

(1)准备工作:

<1>新建一个Editor文件夹,将Test05脚本放在此文件夹下

<2>取消继承MonoBehaviour类

<3>引用UnityEditor命名空间

<4>继承Editor类

<5>自定义编辑器[CustomEditor(typeof(Test04))]

(2)using UnityEditor;

类:CustomEditor、Editor、Handles

<1>Editor类:

1)被编辑的目标:类型 编辑对象=target as 类型

2)场景窗口:OnSceneGUI()

<2>CustomEditor类:

1)自定义编辑器:[CustomEditor(typeof(组件))]

1.1)写在脚本前一行

<3>Handles类

1)开始绘制:类名.BeginGUI();

2)结束绘制:类名.EndGUI();

以上是一组绘制

(3)using UnityEngine;

类:GUILayout

<1>GUILayout类

1)开始绘制指定的区域:类名.BeginArea(Rect类型数据);

2)结束绘制指定的区域:类名.EndArea();

以上是一组绘制

3)绘制文本框:类名.Label(标题);

4)绘制按钮:类名.Button(标题);


最后:以上就是今天全部内容,如有疑问,欢迎咨询,谢谢大家~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,100评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,308评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,718评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,275评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,376评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,454评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,464评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,248评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,686评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,974评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,150评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,817评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,484评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,140评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,374评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,012评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,041评论 2 351

推荐阅读更多精彩内容