Unity3D Editor自定义窗口、自定义组件学习分享

举荐阅览

  • CSDN主页
  • GitHub开源地址
  • Unity3D插件同享
  • 简书地址
  • 我的个人博客
  • QQ群:1040082875

一、前语

这是我看到的一篇关于自界说窗口、自界说组件比较无缺的教程,讲的很详细咱们一同学习一下吧。

二、正文

1、Un教程ity Editor 根底篇(一):Build-In Attribute

关于 Unity 内置特字体下载变量名能够从到官方文档中查询,本篇文章只介绍一些常用的内置变量特征,如下图所示:
Unity3D Editor自界说窗口、自界说组件学习共享
接下来进行项目设置,创立一个空的 Unity 工程,姓名由你来定,文件夹的层级联系如下:
Unity3D Editor自界说窗口、自界说组件学习共享
现在还不需可视化音乐求Editor文件夹,但是先创立,往后的教程中会用到。然后再 Scripts 文件夹中创立一个新的 C# 脚本,命名为“People”,双击翻开该脚本。

AddComponentMenu

AddComponentMenu 特征容许将一个脚本增加到 Component 菜单中,然后你便能够经过 Component ->(你设置的姓名)为一个选中的游戏政策创立该脚本,如开源软件下所示:
Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

RequireComponent

R教程诀窍2电影equ变量值ireComponent()特征会主动帮变量的界说你增加你需求的组件,假定现已存在则不再重复增加,且不能移除,如下所示:
Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

提示:经过查验,我发现一个问题,假定脚本现已开源阅览挂在物体身上,然后再修改脚本,教程手绘为增加 R教程拼音equireComponent 特征的话,完全不起效果,因而建议咱们在用此特征的变量的指针其意义是指该变量的时分要留神。

ContextMenu

Conte变量xtMenu()特征容许增加一个指令到该组件上,你能够经过右键或许点击设置图标来调用到它(一般用于变量类型有哪些函数),且是在非运行状态下实施该函数,如下所示:
Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

HelpURL

HelpURL()供给一个自界说的文档链接,点击组件上的文档图标既能翻开到你指定的链接,如下所示:
Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

提示:填写链接时,必定要写上 http:教程// 或许 https://,否则将可视化是什么意思无任何反响。

Range()、Multi可视化line()、header()

  • Range()特征

用于将一个值指定在必定的规划内,并在Inspector面板中为其增加滑块;

  • Multiline()特征

用于给 stri可视化大屏ng 类型增加多行输入;

  • h字体全国eader()特征

用于增加特征的标题

详细操作如下所示:
Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

变量略的分化一下:
1.第9行,咱们运用了 [Hea可视化大屏der(“BaseInfo”)] 为其设置了标题(为“BaseInfo”),如上图所示。

2.第10行,咱们运用了 [Multiline(5)] 为其 name 特征增加了5行输入,如上图所教程英文示,明显输入框变大了。

3.第12行,咱们运用了 [Range(-2,2)] 为其 age 特征指可视化编程定了一个教程(-2,2)的规划,而且为其增加了一个滑块,如上图所示。

Toolt变量的界说ip()、Space()

T可视化音乐ooptip()特征用于教程的意思在 Inspector 面板中,当鼠标停留在设置了Too可视化的效果ptip()的特征增加指定的提示;Space()变量名用于为在 Inspector开源是什么意思 面板两特征之间增加指定的距离,如下所示:
Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享


Unity Editor 根底篇(二):自界说 Inspector 面板

究竟效果

Unity3D Editor自界说窗口、自界说组件学习共享

预备作变量名

仍是可视化编程运用上一篇的 Unity 工程,然后在 Scripts 文件夹里创立一个新的 C# 脚本,命名为“Player”,然后双击翻开脚本,然后为其增加如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

Player 类记载了字体规划 Player 的一些根底信息,例如:ID、姓名、布景故事、生命值、损害等等。

自界说 Inspecto可视化办理r开源众包 特征面板的一些根底常识教程的意思,和留神事项如下图所示:
Unity3D Editor自界说窗口、自界说组件学习共享

传送门: www.ceeger.com/Script/Edit…

接下来开始制造的咱们自己的 Inpector,关于自界说 In开源pector 面板可参阅下图的API:教程手绘
Unity3D Editor自界说窗口、自界说组件学习共享

传送门:www.ceeger.com/Script/Edit…

常用的自界说 Inspector变量类型有哪些 界面布局特征

现在,请你在 Edit教程动漫人物or 文件夹中创立一个新的 C# 脚本,双击就翻开该脚本,并为其增加如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

Okey,接下来逐个剖析一下

1、Vertical – 笔直布局

默许的界面布局便是笔直布局,但是为了节目效果,我开源软件们仍是把它写上比较好,设置元素为笔直布局需运用这对兄弟来声明:

EditorGUILayout.BeginVe可视化东西rtical();
EditorGUILayout.EndVertical();

在这对教程动漫人物兄弟里边做的布局都是以笔直方向来摆放的。
Unity3D Editor自界说窗口、自界说组件学习共享

如上图所示,整个页面元素都是以笔直方向来布局的。

2可视化数据图表、Horizontal – 水平布局

设置元素为水平布局需运用这对兄弟来声明:

EditorGUILayo可视化办理ut.Beg字体辨认扫一扫inHorizontal();
EditorGU开源我国ILayout.EndHorizontal();

在这对兄弟里边做的布局都是以水平方向来摆放的。
Unity3D Editor自界说窗口、自界说组件学习共享

因为咱们在上图圈选的当地运用了 Horizontal 这对兄弟,因而在这对兄弟里的元素全是以水平方向摆放。

3、Space – 空间(空行)

运用 EditorGUILayout.Space() 可在可视化的效果两个元素之间教程动漫人物空出一行。
Unity3D Editor自界说窗口、自界说组件学习共享

4、制造各种类型字段

制造字段变量名用到以下几个办法:

EditorGUILayout.Label字体辨认Fi教程eld()标签字段
EditorGUILayout.IntField() 整数字段
EditorGUILayout.FloatField() 浮点数字段
EditorGUILayout.TextField() 文本字字体大全段
EditorGUILayout.Vector2Field() 二维向量字段
EditorGUILayout.Vector3Field() 三维向量字段
EditorGUILayout.Vector4Field() 四维向量字段

它们的规矩便是办法名都是以 F变量的指针其意义是指该变量的ield 结束,大伙们能够依据制造的类型选择相对应的办法。

一般括号里边的参数,榜首个为制造该字段的姓名(string 类型),第二个为制造该字段的值,如下所示:
Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

1 为标签字段
2 为整形字段
3 为文本字段
4教程视频怎么制造办法.为文本区域

5、滑块、进度条

滑块:EditorG字体规划在线生成器UILayout.Slider变量类型有哪些()
Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

EditorGUILayout.Slider()用于制造一个滑块,从上可知:字体转换器

榜首个参字体规划在线生成器数是滑块的姓名
第二个参开源软件数是滑块要改动的值
第三和第四个参数是滑块的规划

效果如下图所示:
Unity3D Editor自界说窗口、自界说组件学习共享

进度条:EditorGUI.ProgressBar()
Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

EditorGUI.ProgressBar()用于制造一个进度条,从上可知:

榜首个参数是设置进度条的大小,类型是一个 Rect。
第二个参数是设可视化是什么意思置闪现的值,
第三个参数是设置进度条的姓名

提示:
1.榜首个参数,咱们运用了 GU教程英文ILayoutUtility.GetRect() 东西类的 GetRect()办法回来一个设置好的矩形框,在事例里咱们设置了一个 50*50 大小的矩形框。

2.第二个参数,咱们运用 player.health / 100.0f。那是因为进度条的最大值为1,假定不除100的话教程手绘,当滑块的值为1时,字体大全进度条便填满了,因而咱们想让值与进度条的份额同步,那就除100吧(语文欠好,不知道阐明得怎样)。

效果图:
Unity3D Editor自界说窗口、自界说组件学习共享

6、帮忙框

帮忙框:EditorGUILayout.HelpBox()
Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

EditorGUILayout.HelpBox(可视化的效果)用于制造一个盒子(也能够看作矩形框),然后再盒子的里边闪现提示信息,从上图可知:

榜首个参数是传入提示信息
第二个参教程手绘数是提示信息的类型

效果图:教程手绘
Unity3D Editor自界说窗口、自界说组件学习共享

过失类型
Unity3D Editor自界说窗口、自界说组件学习共享

正常类型
Unity3D Editor自界说窗口、自界说组件学习共享

正告类型


根底篇(三):自界说窗口

究竟效果

Unity3D Editor自界说窗口、自界说组件学习共享

预备作业

在之前的项目中,找到 Edit变量值or 文件夹,然后创立一教程诀窍2个新的 C# 脚本,命名为“MyFirstWindow”,然后双击翻开脚本,增加如下代码教程的意思
Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

常用的自界说窗口特征

Unity3D Editor自界说窗口、自界说组件学习共享

传送门:www.ceeger.com开源/Scrip可视化大屏t/开源Edit…

Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

传送门:www.ceeger.com/Script/GUIL…

以上是咱们这个事例中首要用到的几个类。

代码剖析

特征
Unity3D Editor自界说窗口、自界说组件学习共享

首要声明开源代码网站github晰三个变量:

  • 1.bugRepor字体大小怎么调terName 用于储存记载Bug人的姓名
  • 2.description 用于描绘Bug信息
  • 3.变量的界说buggyG开源我国ameObject 用于储存 Bug开源众包 政策

设置窗口的姓名
Unity3D Editor自界说窗口、自界说组件学习共享

如代码注释所示,运用结构函数来教程诀窍2电影设置可视化剖析窗口的姓名。比较生疏的是 titleContent特征 和 GUIContent 类,简略了解如下图所示:
Unity3D Editor自界说窗口、自界说组件学习共享

GUIConten字体大全t 界面内容类
Unity3D Editor自界说窗口、自界说组件学习共享

titleContent 特征
这个结构函数所发生的效果如下图所示:
Unity3D Editor自界说窗口、自界说组件学习共享

设置窗口的姓名

增加菜单栏选项 – 翻开窗口

Unity3D Editor自界说窗口、自界说组件学习共享

这个函数用于在菜单栏上增加一个翻开该窗口的的菜单选项。比较生疏的是 [MenuItem()] 特征 和 GetWindow()函数,简略了解如下图所示:
Unity3D Editor自界说窗口、自界说组件学习共享

[MenuItem()] 特征需求留神的两点(上图也有提示):
1.有必要是放在 Assets / Editor 文件夹下的类,且运用了 using UnityEditor
2.调用的函数有必要是静态函数(static)

![这儿写图片描绘](https://p3-juejin.byteimg.com/tos-cn字体大小怎么调-i-k3u1fbpf变量类型有哪些cp/18教程诀窍2电影cb131d3c4249e797e1541252be6ba9~tplv-k3u1变量的指针其意义是指该变量的fbpfcp变量类型有哪些-zoom-1.image)

该函数便是用于回来一个窗可视化大屏口政策(便是翻开字体全国一个窗口)。

制造窗口

制造窗可视化剖析口元素可视化需求在 OnGUI()可视化办理 函数里边规划,接下来咱们逐个分化。
Unity3D Editor自界说窗口、自界说组件学习共享
进程:
1.GUILayout.Space(10),这个有说过,让两个元素之间空十个像素之间的距离开源
2.GUI.skin.label.fontSize 、GUI.ski教程视频怎么制造办法n.label.a教程拼音lignment 用于设置标题的字体大小和对齐格局变量是什么意思,详细从下字体辨认扫一扫图中了解:
Unity3D Editor自界说窗口、自界说组件学习共享

关于 GUI.skin API 里边没有列出可视化东西一些关于皮肤的特征,但是大伙们能够经过在Assets 菜单下右键 Create => GUI skin,如下图所示:可视化
Unity3D Editor自界说窗口、自界说组件学习共享

想对应的特征全在里边

3.运用 GUILa教程诀窍2yout.Label() 来制造标题

整个代码的效果如下图所示:
Unity3D Editor自界说窗口、自界说组件学习共享

制造文本

Unity3D Editor自界说窗口、自界说组件学习共享

好吧,似曾相识,因而不在赘述,效果如下所示:
Unity3D Editor自界说窗口、自界说组件学习共享

闪现当时正在字体辨认扫一扫修改的场景

Unity3D Editor自界说窗口、自界说组件学习共享

在这段代码中,比较生疏的也便是 EditorSceneManager.GetActi字体大小怎么调veScen().name,咱们先看下图进行简略的了解:

Unity3D Editor自界说窗口、自界说组件学习共享

其实便是回来当时修改的场景信息(也便是回来 Scene 类型参数),然后运用 name 特征获取场景的姓名,效果如开源矿工教程之家

Unity3D Editor自界说窗口、自界说组件学习共享

闪现当时时间

Unity3D Editor自界说窗口、自界说组件学习共享

这段代码首要便是变量泵运用可视化大屏 System.DateTime.Now 获取当时时间,然后经过 GUILayout.Label() 把当时时间闪现出来,关于 System.Date开源Ti教程诀窍2me.Now 可从下面链接去了解:

msdn.microsoft.com/zh-cn/libra…

效果图如下:
Unity3D Editor自界说窗口、自界说组件学习共享

字体辨认扫一扫作政策槽

Unity3D Editor自界说窗口、自界说组件学习共享

咱们先看看API:

Unity3D Editor自界说窗口、自界说组件学习共享

从上图可知:
1.榜首个参数用于设教程置卡槽的标题姓名
2.第二个参数用于设置字段闪现的物体
3.第三个参数用于设置闪现的类型
4.第四个参数用于设置是否容许指定场景中的物件

效果如下:
Unity3D Editor自界说窗口、自界说组件学习共享

开源矿工作描绘文本区域

Unity3D Editor自界说窗口、自界说组件学习共享
好的,这段代码咱们也介绍字体规划过了,直接上效果图:
Unity3D Editor自界说窗口、自界说组件学习共享

制造按钮

Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

其实很简略,不外乎便是增加一个按钮呗。在咱们的代码中,用了一个 if 判别句可视化音乐子来判别,当咱们点击该按钮时所触发的事件(该函数的回来值是一个 bolol 类型),在代码中克森可视化是什么意思也上好备注了,因而也没有什么难的,直接上效果图:
Unity3D Editor自界说窗口、自界说组件学习共享

#####Save字体美化大师Bug() 函数
Unity3D Editor自界说窗口、自界说组件学习共享

其实这个函数所做的作业也很简略,便是把咱们设置好的一些参数保存到一可视化是什么意思个文本文件(.txt文件)上,仅此而已。

进程如下:可视化东西
1.榜首行,运用 Directory 类创立一个目录
2.创立一个写入流类(StreamWriter)
3.然后把设置好的各个参数写入文件中

还不了解 C# 文件操作的朋友,是时分回来往不断补补了,A变量的指针其意义是指该变量的P教程诀窍2电影I 链接如下:

msdn.microsoft.co可视化编程m/zh-c字体美化大师n/libra…
msdn.microsoft.com/zh-cn/libra…

详细操作如下所示:
Unity3D Editor自界说窗口、自界说组件学习共享

然后你便能在 Assets 文件夹看到如下图所示信息:
Unity3D Editor自界说窗口、自界说组件学习共享

Save教程拼音BugWithScreenshot(可视化音乐) 函数

Unity3D Editor自界说窗口、自界说组件学习共享

其实这个函数所做的作业跟上面那个函数做的作业相同相同的,不外乎就对了一行代码,而这行代码便是取得游戏屏幕截图,仅此而已,经过下面 API 去了解:
Unity3D Editor自界说窗口、自界说组件学习共享

详细操作和上面相同相同的,只不过多了相同图片变量,仅此而已,如下图所示:
Unity3D Editor自界说窗口、自界说组件学习共享

好吧,至此咱们的这篇文章就结束了。


Unity Editor 根底篇教程的意思(四):Handles

究竟效果

Unity3D Editor自界说窗口、自界说组件学习共享

预备作业

因为太久不更新,之前的项目不知道跑哪儿去了。让咱们从头创立一个新的项目,命名为“MyHandles”。然后创立三个文件夹,字体规划在线生成器如下图所示:
Unity3D Editor自界说窗口、自界说组件学习共享

接下来在Scripts文件夹中,创立一个C#脚本,并命可视化名为“MyHandles”;然后在Editor文件夹中再创开源是什么意思建一个C#脚本,命名为“HandlesInspector”;然后在将下面的小图标保存到I开源节流mg文件夹中:
Unity3D Editor自界说窗口、自界说组件学习共享

好了预备作业组织妥当,开始码了个码。

码前预习

在这篇教程中,咱们首要用到 Handles 这个类,一下是该类的根本介绍,克森会挑出几个比较常用的特征和办法来制造一下简略的东西,其它特征和办法大伙们能够自行去查验查验:
Unity3D Editor自界说窗口、自界说组件学习共享

API传送门:www.ceeger.co字体规划m/教程之家Script/Hand…

制造半径操作柄

首要翻开咱们的 MyHandles.cs 脚本,为其增加一个变量:
Unity3D Editor自界说窗口、自界说组件学习共享

然后翻开 HandlesIns开源阅览pector.cs 脚本,增加如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

将这两个脚本保存,回到Unity中创立一个空物体,并为其增加 MyHandle开源基金会s.cs 脚本:
Unity3D Editor自界说窗口、自界说组件学习共享

此刻咱们观察场景变量的指针其意义是指该变量的,除了场景中出了 “MyHandles” 几个字外,字体转换器如同啥事儿变量类型有哪些也没发生,不急,让咱们来调整调整 Area Radius 参数的值,便能开源是什么意思看到如下效果:
Unity3D Editor自界说窗口、自界说组件学习共享

代码很简略,注释也给咱们弄上了,信任咱们都能看懂吧。仍是不太懂的能够多看看API:
Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

效果:这个东西是不是有点类型于磕碰体的那个框框啊,这玩意多用于制造AI,用于判别和指定UI影响规划用的。

制造缩可视化数据图表放操作柄

翻开 MyHandles.cs 脚本,增加如下变量:
Unity3D Editor自界说窗口、自界说组件学习共享

然后为 HandlesInspector.cs 脚本增加如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

这段代码呢也不难于了解,便是参数多了点
Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

PS:因为中文版的介绍不全,所以补了一张官方的API。

效果:多用于制造一些自界说的操作,比如Unity的粒子体系就用到字体了许多自界说的操作柄,比如粒子体系的Shape参数就用到了该函数的第五个参数来制造:

Unity3D Editor自界说窗口、自界说组件学习共享

制造方位操作柄

翻开 MyHandles.cs 脚本,增加如下变量:
Unity3D Editor自界说窗口、自界说组件学习共享

然后为变量的指针其意义是指该变量的 HandlesInspector.cs 脚本增加如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

回到场景字体全国中,此字体全国时大伙们会字体规划在线生成器碰到这样的问题:
Unity3D Editor自界说窗口、自界说组件学习共享

别担忧,那是因为你没有设置 nodePoints 特征,一切该函数访问到一个空的数组,因而便报出了老司机过失。如下图所示便OK:
Unity3D Editor自界说窗口、自界说组件学习共享

这段代码简略了吧,也就两个字体规划在线生成器参数,假定仍是不清楚的小伙伴能够多查验查验。
Unity3D Editor自界说窗口、自界说组件学习共享

效果:这个能够用在AI上面,然后为每一个AI增加一个方位操作柄,这样可视化东西如同看上去便利不少吧?

制造旋教程诀窍2电影转操作柄

翻开 MyHandles.cs 脚本,增加如下变量:
Unity3D Editor自界说窗口、自界说组件学习共享

然后为 HandlesInspector.cs 脚本增加如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

相同的,会呈现上面类似的过失,甚至愈加严峻,Scene视图直接白字体下载屏!!运用相同的处理办法即可,如下所示:
Unity3D Editor自界说窗口、自界说组件学习共享

PS:nodePointsRotation的个数教程之家要与nodePoints的个数要持平或许小于nodePoints。

这段代码相同很变量类型有哪些简略了吧,也是两可视化大屏个参数,假定仍是不清楚的可视化办理小伙伴能够多查验查验。
Unity3D Editor自界说窗口、自界说组件学习共享

教程拼音一个操作,看看开源代码网站github大伙们能不能看懂我变量泵想表达的意思:
Unity3D Editor自界说窗口、自界说组件学习共享

是不是感觉变量像是停止一般,一动不动的呢?下面修改一下代码:

Unity3D Editor自界说窗口、自界说组件学习共享

此刻,你会看到如下的过失,不要严峻,咱们只要越到过失,处理多了,那今后越到过失就不是什么字体可怕的作业了:
Unity3D Editor自界说窗口、自界说组件学习共享

信任许多人都知道这个是什么过失吧,那是因为由三维向量转为四元素W的值不能为0,因而咱们只变量泵要把W设置为1即可,如下所示:
Unity3D Editor自界说窗口、自界说组件学习共享

这个操作呢,首要是帮咱们找出一些开发进程中简略丢掉的过失,还有一个目的便是让字体坐标轴跟随着旋转而旋转(因为第二个参数是方位操作柄的旋转方向嘛,我把它改为了咱们设置好的旋转变量的指针其意义是指该变量的方向,因而方位操作柄便能跟随着咱们的旋转而旋转了)。

衔接操作柄

为 HandlesInspector.cs 脚本增加如下代码:变量泵
Unity3D Editor自界说窗口、自界说组件学习共享

此刻回到场景中便能看到如下所示:字体全国
Unity3D Editor自界说窗口、自界说组件学习共享

这段代码呢,也很简略,或许有点不了解的也便是 Mathf.Rep开源软件eat()函数,这个简略,看下图便能了解:
Unity3D Editor自界说窗口、自界说组件学习共享

其实这样做的原因大伙们都知道,便是为了避免下标越界。

翻开和关闭操作柄

翻开 MyHandles.cs 脚本,增加如下变量:
Unity3D Editor自界说窗口、自界说组件学习共享

然后为 HandlesInspector.cs 脚本增加如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

其实也很简略了解,便是当showNodeHandles为false时便不实施 if 代码块里的代码,因而便无法制造出方位操作柄和旋转操作柄咯,究竟的效果如下:
Unity3D Editor自界说窗口、自界说组件学习共享

制造场景GUI

为 HandlesInspector.cs 脚本增加如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

回到场景便能看到如下图所示的界面:
Unity3D Editor自界说窗口、自界说组件学习共享

这段代码呢,其实也很简略,不过是运用了两对函数。

榜首对为:Han变量是什么意思dles.BeginGUI() 和 Handles.EndGUI()。这对函数表名你想要在Scene视图下制造东西。

第二可视化数据图表对为:GUILayout.BeginHorizontal() 和 GUILayout.EndHorizontal()。这对函数标明你想要以水平方向制造东西。信任第二对函数大字体大全伙们教程拼音都不生疏吧,记住在《Unity Edit字体辨认扫一扫or 根底篇(三):Editor Window》中有介绍过。

里边的逻辑代码也很简略,那便是制造一个按钮,教程当我点击时让 MyHandles.shoNodeHandles的值取反(也便是本来为true,点击后取反,便为fal开源矿工se)。

补偿:在榜首对函数里得操作和自界说窗口里得操作几乎相同,咱们能够参阅下面得API去查验查验:

www.ceeger.com/Script/GUIL…
这个插件就用到了今日咱们学到字体辨认扫一扫的东西制造而成的:
Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

好了,差不多就介绍到这儿吧


Unity Editor 根底篇(五):Gi字体辨认zmos

究竟效果

Unity3D Editor自界说窗口、自界说组件学习共享

预备作业

在之前的项目或许新建的项变量目中创立如下目录结构:

Unity3D Editor自界说窗口、自界说组件学习共享

假定是新的项目,只需创立Scripts和Gizmos就好变量与函数

该文章用的到API:
Unity3D Editor自界说窗口、自界说组件学习共享

传送门:www.ceeger可视化办理.com/Script/开源软件Gizm…

根底常识

Unity3D Editor自界说窗口、自界说组件学习共享

由上图可知,Gizmos是用于在场景视图可视化调试或辅佐设置用的。

需求留神的是所以Gizmos的制造有必要在脚本的OnDrawGizmos或OnDrawGi可视化编程zmosSelected里编写,因而咱们的榜首步便是在脚本中增加这两个函数。

码了个教程拼音

在Scripts文件夹中创立一个C#脚本,命名为:“变量与函数MyGizmos”,双教程手绘击翻开脚本,码入如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

让咱们来查验一下:
Unity3D Editor自界说窗口、自界说组件学习共享

咦,感觉不对啊,感觉不是每一帧都在调用啊!克森做了个查验,假定你在Scene视图下不做任何过失(鼠标滑动也不能调用这两个函数),这两个函数都没有调用(看来官方文档说得不完全啊!!)。

不管了,总归大伙们知道是这么一回事儿就行了。

PS:有字体必要于Scene视图下,于Game视图下不起效果。

接下来为“MyGi变量zmos.cs”脚本增加如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

好,现在回到场景视图下,如下图字体大全所示操作:
Unity3D Editor自界说窗口、自界说组件学习共享

哦豁,咱们的线框球体便出来了,是不是很简略啊。

代码剖析:
Unity3D Editor自界说窗口、自界说组件学习共享

该函数的榜首个参数是该线框球体的中心点方位,它是一个Vector3类型。

第二个参数是该线框球体的半径大小,它是一个f字体大全loat类型。

接下为开源阅览咱们的教程视频怎么制造办法脚本增加如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

好,现在回到场景视图开源节流下,如下图所示操作:
Unity3D Editor自界说窗口、自界说组件学习共享

哦豁,咱们的线条便出来了,是不是很简略啊。

可视化是什么意思码剖析:
Unity3D Editor自界说窗口、自界说组件学习共享

上图现已阐明得非常清楚,两个参数标明:从from起点到to方位制造一条线。

因而榜首个参数便是教程诀窍2起点的方位,第二个参数便是指定的方位。
Unity3D Editor自界说窗口、自界说组件学习共享

上面代码的意思便是当时的方位朝 Z-轴 正方向依据 si可视化剖析ze 的值扩展。

接下来为咱们的脚本“MyGizmos.cs”增加如下变量与函数代码:
Unity3D Editor自界说窗口、自界说组件学习共享

好,现在回到场景视图可视化是什么意思下,如下图所示操作:
Unity3D Editor自界说窗口、自界说组件学习共享

如上图所示,咱们经过for循环调用可视化剖析Gizmos.制造出开源我国了5个实心球体。

代码剖析:
Unity3D Editor自界说窗口、自界说组件学习共享

由上图可知。第可视化是什么意思一个参数是制开源作该球体的中心点的方位,第二个参数是该球体的半径。

因而在咱们的代码中,运用for变量是什么意思循环依据nodePoin教程之家ts参数创立字体大全多个球体,在上面的事例中克森创立了5个球体开源软件,设置它们的半径为0.5(大伙们也能够增加一个参数,进行动态操作半径值)。

因为制造的东西都是一个色,字体下载欠好差异,大伙开源代码网站github们能够增加如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

增加后的效果:
Unity3D Editor自界说窗口、自界说组件学习共享

咱们的球体变成了蓝可视化音乐色,咱们的线条编程了赤色,未设置的线教程拼音框球体仍是默许的白色。

PS:Gizmos.color = Color.blue,假定后续没有从头指定制造的颜色,则运用究竟一次设置的颜色。

接下来为咱们的脚本“MyGiz变量名mos.cs”增加如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

回到场景中看看有什么效果:
Unity3D Editor自界说窗口、自界说组件学习共享

好了,从上图中咱们也知道咱们增加的这段代码的意思了吧。很简略,便是将这些球体给衔接起来。

Unity3D Editor自界说窗口、自界说组件学习共享

为难了,发现可视化东西究竟开源节流要将的东西现已在前面暴露出来了。。。便是下图的这个东西:可视化
Unity3D Editor自界说窗口、自界说组件学习共享

信任这个东西大伙们都知道怎样设置吧,不过为了变量名的命名规矩该文章的无缺性,变量是什么意思咱们仍是来操作一遍:

Unity3D Editor自界说窗口、自界说组件学习共享

好了,这个是手动设置的,那么代码中又是怎样设置的呢?

请咱们增加教程英文如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

回到场景中,看看有什么效果发生。

咦,没有什么作字体美化大师业发生啊!!!
Unity3D Editor自界说窗口、自界说组件学习共享

哦,本来是找不到图片资源。如上图所示,这便是为什么文章的最初让大伙们创立 Gizmos 文件夹的原因。现在将一张你喜欢的图标,命名为:“icon.jpg”放入Gizmos文可视化的效果件夹中。

PS:图片的命名必定要与代码中的第二个参数的姓名相同。


Unity Editor 根底篇(六):Property Drawers

究竟效果

Unity3D Editor自界说窗口、自界说组件学习共享

变量是什么意思备作业

创立一个新的工程或许用上一篇的工程都字体美化大师能够(克森是新建的工程),然后在Scripts文件夹中创立两个C#脚本,别离命名为:“Persion变量类型有哪些.cs”和“ShowPersionInfo.cs变量类型有哪些”,如下图所示:

Unity3D Editor自界说窗口、自界说组件学习共享

然后在Editor文件夹中字体美化大师创立一个名为“PersionPropertiesDrawer.cs”的脚本,详细如下图所示:
Unity3D Editor自界说窗口、自界说组件学习共享

码了个码

首要,翻开咱们得“Pers教程的意思ion.cs”脚本,为其增加字体大全如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

这段代码不必阐明了吧,便是一个一般得类和枚举。接下来为教程诀窍2电影咱们的“ShowPersionInfo.cs”脚本增加如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

为什么要这样呢?信任教程的意思大伙们都知道,要想给一个游戏政策挂上脚本,那么该脚本就有必要承继自 MonoBehaviour 。大伙们能够将“Pe开源众包rsion.cs”挂到游戏政策上,便会呈现如下图所示:

Unity3D Editor自界说窗口、自界说组件学习共享

所以“ShowPersionInfo.cs”仅仅便是一个辅佐类,效果便是将咱们的“Persion.cs”能挂到游戏政策上。

好了,接下可视化来让咱们创立一个字体大全空的游开源众包戏政策,而且命名为“Persion”,然后为其增加“ShowPersionInfo.cs”脚本:
Unity3D Editor自界说窗口、自界说组件学习共享

这什么都没有啊!!本来,字体辨认咱们漏掉了一段代码,接下来让咱们为其补上:
Unity3D Editor自界说窗口、自界说组件学习共享

本来变量是什么意思呀,要想将一个一般的类里的特征在Inspector面板中闪现出来教程拼音,那么有必要将这个一般的类序列化。

好了,让咱们回到 Unity 中,看看发生了什么变化。
Unity3D Editor自界说窗口、自界说组件学习共享

Perfect!Pers变量ion类中的特征成功的闪现在了Inspector面板上。

好,让咱们可视化大屏简略的了解一下,什么是序列化,如下图所示:
Unity3D Editor自界说窗口、自界说组件学习共享

(图片来源于百度百科)
简略的了解便是,序列化类的时分是从特征读取值以某种格局保存下来,将其传输到另一个当地去。那么呢,这个进程是交给Unity引擎来完结的,简略的了解就行了(也便是会用就行了)。

接下来便是本篇教程的核心了!!!

首要翻开咱们的“PersionPropertiesDrawer.cs教程英文”脚本,为其增加如下代码:

Unity3D Editor自界说窗口、自界说组件学习共享

让咱们的“PersionPropertiesDrawer.cs”承继自PropertyDrawer类,然后重写 OnGUI 和 GetProperties 函数。

增加 [CustomPropertyDrawer(typeof(Persion))],指定该类是用于自界说特征的制造。

接下来让咱们来查验一下这些办法传入的参数都是做什么的,为咱们的脚本增加如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

好,现在回到Unity看看查验的数据:
Unity3D Editor自界说窗口、自界说组件学习共享

从上面的数据能够看出如下几点:
1.OnGUI 和 GetPropertyHeight 里变量之间的联系的 property 参数是同一个参数。变量是什么意思该参数里寄存的是 Persion 里的特征信息。

2.OnGUI 和 GetPropertyHeig可视化的效果ht 里的 Label 参可视化的效果数也是同一个参数,该参数里寄存开源节流是什么意思是什么的是 Persion 类的类名。

3.position参教程数指的是需求在Inspector面板中制造可视化音乐的区域信息,能够从下面两张图中简略的了解一下:

Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

PS:为了查验,注释了一些代码,而且增加了一个2D刚体组件。

对了还有开源代码网站github一个当地丢掉掉了,那便是在Inspector面板中的一行高度为 16 。咱们能够从下图中得知。
Unity3D Editor自界说窗口、自界说组件学习共享

好了,接下来就让咱们来制造咱们Persion的特征吧。咱们的政策如下图所示:
Unity3D Editor自界说窗口、自界说组件学习共享

下面看一看咱们的教程英文剖析图:
Unity3D Editor自界说窗口、自界说组件学习共享

好了,接下来就开始码咱们的代码,翻开“PersionPropertiesDrawer.cs”,为其增加如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

上面的代码呢,都有剖析过了。或许会有一些小伙伴在两个当地上头晕,也便是【获取对应的序教程英文列化特征】和【制造特征】这两个当地上弄不了解。其实很简略,从下面两张图中便可了解:
Unity3D Editor自界说窗口、自界说组件学习共享

Unity3D Editor自界说窗口、自界说组件学习共享

好了,让咱们回到Unity中,看看咱们的效果完结了没教程英文
Unity3D Editor自界说窗口、自界说组件学习共享

好的,非常完美的完结了开源是什么意思

至此,该篇文变量名可视化的效果就现已弄完了。


Unity Editor 根底篇(七):Property Attributes

究竟效果

Unity3D Editor自界说窗口、自界说组件学习共享

预备作业

大伙们还记住《Uni变量是什么意思ty Editor 根底篇(一):Build-In Attribute》里所说的东西吗?如下图所示:

Unity3D Editor自界说窗口、自界说组件学习共享

创立一个新的工程或许用上一篇的工程都能够(克森用的是本来的工程),然后在Scripts文件夹中创立两个C#脚本,别离命名为:“ReadOnlyAttribute.cs”和“开源Test.cs”,如下图所示:
Unity3D Editor自界说窗口、自界说组件学习共享

然后在Ed开源我国itor文件夹中创立一个名为“Rea教程诀窍2dOnlyAttributeDrawer.cs”的脚本,详细如下图所示:

Unity3D Editor自界说窗口、自界说组件学习共享

码了个码

变量值要,翻开咱们得“ReadOnlyAttribute.cs”脚本,为其增加如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

这段代码很简略,便是让咱们的“ReadOnl可视化是什么意思yAttribute”类承继自“PropertyAttribute”类,该类的阐明如下图所示:
Unity3D Editor自界说窗口、自界说组件学习共享

所以呢,由上图便能可视化东西知道咱们接下来要做的作业了吧,开源软件那便是让咱们的教程视频怎么制造办法“ReadOnlyAttributeDrawer”类教程诀窍2电影承继自PropertyD字体美化大师rawer类,然后重写OnGUI和GetPropertyHeight办法,如下图所示:
Unity3D Editor自界说窗口、自界说组件学习共享

上图的代码在可视化教育监导渠道上一篇都有说明过,因而这儿不再做过多的赘述。

好的,接下来持续为咱们的“ReadOnlyAttributeDrawer.cs”的OnGUI办法增加如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

在上面的代码中,咱们运用到了一个名为“SerializedPropertyType”的枚举,它寄存的是序列化特征的类型,它包含的类型许多,但是在变量的指针其意义是指该变量的该篇文章中咱们只运用到了这几个,感兴趣的同学看能够去查验其它类型。

咱们运用该枚举为value获取相对应类型的值,然后运用一个Label在Inspecto字体大全r面板中制造出来(t为制表符,为了美化闪现)。

好了,接下来翻开咱们的“Test.cs”脚本,增加如下代码:

Unity3D Editor自界说窗口、自界说组件学习共享

现在,让咱们回到Uni变量名ty中检查一下效果:
Unity3D Editor自界说窗口、自界说组件学习共享

这个。。。是不是很简略呀。接下来让咱们制造一教程手绘个带有参数的。

让咱们翻开咱们的“ReadOnlyAttribute.cs”,增加如下代码:

Unity3D Editor自界说窗口、自界说组件学习共享

再让咱们为“Rea开源基金会dOnlyAttributeDrawer.cs”的OnGUI函数增加如下办法:
Unity3D Editor自界说窗口、自界说组件学习共享

上面的代码信任大伙们都能看懂,仅有有点威逼的或许便是 attribute 特征了,其实它便是咱们经过 [CustomPropertyDrawer(ty变量是什么意思peof(ReadOnlyAttribute))] 传过来的Re开源我国adOnlyAttribute类,因而克森Debug了它的类型姓名,接下来让咱们看看打印出来的信息:
Unity3D Editor自界说窗口、自界说组件学习共享

好的,便是咱们的 ReadOnlyAttribute 类。对了克森打印了 myAttribute.textColor 的值,是为了查验值是否可视化的效果正确的传入。

好了,接下来开始查验,让咱们为咱们的“Test.cs”脚本增加如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

从上图可知,其实[ReadOnly(参数)] 传入的参数对应的便是咱们ReadOnlyAttribute类的结构函数开源需求传入的参数。

好了,接下来让咱们回到Unity中查字体辨认看一下效果:
Unity3D Editor自界说窗口、自界说组件学习共享

好了,大伙们能够看到,值现已完美的传入了,效果并不是完美希望的那样。但是咱们的 M字体辨认扫一扫y Int 的 Apha 值起效果开源众包了。

克森关于这个Bu变量名g弄了一个晚上,究竟发现本来是Unity5.x出的BUG,总归克森今晚把Unity5.x版别都试得差不多了,仍是一个鸟样,究竟Unity4.6版别妥妥得完结了咱们想要得效果,下面有两张图,一张是克森试过得版别,一张是Unity4.6完结得效果图:
Unity3D Editor自界说窗口、自界说组件学习共享

(试过的版别)
Unity3D Editor自界说窗口、自界说组件学习共享

(Unity4.6版其他效果)

好了,字体今日的教程就到这儿吧


Unity Editor 根底篇(八):Decorator Dr开源软件awers

究竟效果

Unity3D Editor自界说窗口、自界说组件学习共享

预备作业

创立一个新的工程或许用上开源一篇的工程都能够(克森用的是本来的工程,因为这一篇的内容和上一篇的内容很类似),然后在Scripts文件夹中创立两个C#脚本,别离命名为:“DrawerImag开源代码网站githube教程Attribute.cs”可视化大屏和“Test.cs”,如下图所示:
Unity3D Editor自界说窗口、自界说组件学习共享

开源众包后在Edi可视化的效果tor文件夹中创立一个名为“Drawe开源节流是什么意思是什么rImageAttributeDrawe可视化编程r.cs”的脚本,详细如下图所示字体规划在线生成器
Unity3D Editor自界说窗口、自界说组件学习共享

码了个码

首要,翻开咱们得“DrawerIm可视化音乐ageAttri教程之家bute.cs”脚本,为其增加如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

接下来,翻开咱们的“DrawerImageAttributeDrawer.cs”脚本,为其增加如下脚本:

Unity3D Editor自界说窗口、自界说组件学习共享

上图的代码除了赤色框框里的东西,其它的在上一篇都有说明过,因而这儿不再做过多的赘述。

好了,让咱们来剖析剖析 DecoratorDrawer 类是个什么东西开源我国,首要从字面上的意思便是:装饰制造者。意味着它是用于装饰的。接下来让变量咱们看看它的源码:

Unity3D Editor自界说窗口、自界说组件学习共享

从源码中咱们知道,它其实和上变量的指针其意义是指该变量的一篇的PropertyDrawer类差不多,都是承继自 GUIDrawer。只不过他的 OnGUI 办法的可视化参数比 PropertyDrawer 的 OnGUI 办法的参数好了两可视化办理个,仅此而已。

接下来让咱们为“DrawerImageAttributeDrawer.cs”增加如下代码:

Unity3D Editor自界说窗口、自界说组件学习共享

上面教程之家的代码应该不难了解吧,便是判别图片是否存在,假定不存在就去Resources文件夹里读取对应的图片,然后调用 GUI.DrawTexture(position, image); 在Inspector字体规划在线生成器面板中制造该图片。

因而,接下来的操作信任大伙们都知道了吧。那便是创立Resources文件夹字体全国,然后将图片放入该文件夹中,修改相对应的姓名字体全国,搞定!
Unity3D Editor自界说窗口、自界说组件学习共享

接下来,让咱们回到Unity中检查效果:
Unity3D Editor自界说窗口、自界说组件学习共享

咦,怎样回事儿,怎样那么丑恶?看到这儿,信任看过上一篇文教的店员们应该知道怎样做了教程吧?那便是变量的指针其意义是指该变量的修改咱们 GetHeight() 方变量类型有哪些法的回来值就行了呀。

让咱们回到咱们的“DrawerImageAttribute.cs”脚本中,为其增加如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

字体大全着回到“DrawerImageAttributeDrawer.cs”中,增加如下代码开源软件
Unity3D Editor自界说窗口、自界说组件学习共享

好了,接下来翻开咱们的“Test.cs”脚本,增加如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

现在,让咱们回到Unity变量的指针其意义是指该变量的中检查一下效果:

Unity3D Editor自界说窗口、自界说组件学习共享

这…你坑我?不急不急,克森是故意这么做的,过失见多了那就不是过失了。

好,让咱们来处理这个过失。接下来为咱们的“DrawerImageAttributeDrawer.cs”脚本增加如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

然后回到Uni字体规划在线生成器ty中,看看查验的数据变量值,剖析犯错原因:
Unity3D Editor自界说窗口、自界说组件学习共享

从上图中,咱们能够看出,该脚本先变量与函数调用的是 GetHeight() 办法,因而当咱们在 GetHeight() 办法中运用 _attribute.height 的时分便会报空指针的过失,因为字体规划在线生成器此刻的 _attribute 还没有初始化,因而让咱们增加如下代码:
Unity3D Editor自界说窗口、自界说组件学习共享

好了,接下来回到Unity中检查效果:
Unity3D Editor自界说窗口、自界说组件学习共享

Perfect,美丽的完结了。

发表评论

提供最优质的资源集合

立即查看 了解详情