cover_image

Unity Editor 基础篇(一):Build-In Attribute

Unity Unity墙外的世界
2016年10月04日 14:52
Unity Editor 基础篇(一):Build-In Attribute


目标

1.了解Unity的内置属性的使用


终极目标

利用学到的东西制作自己的工具(自定义的窗口、Inspector、菜单等等)。


本系列其他文章


Unity Editor 基础篇(一):Build-In Attribute


准备工作

关于 Unity 内置属性可以从到官方文档中查询,本篇文章只介绍一些常用的内置属性,如下图所示:


图片


接下来进行项目设置,创建一个空的 Unity 工程,名字由你来定,文件夹的层级关系如下:


图片


目前还不需要Editor文件夹,但是先创建,往后的教程中会用到。然后再 Scripts 文件夹中创建一个新的 C# 脚本,命名为“People”,双击打开该脚本。


1
AddComponentMenu

AddComponentMenu 属性允许将一个脚本添加到 Component 菜单中,然后你便可以通过 Component ->(你设置的名字)为一个选中的游戏对象创建该脚本,如下所示:

图片

图片



2
RequireComponent()

RequireComponent()属性会自动帮你添加你需要的组件,如果已经存在则不再重复添加,且不能移除,如下所示:


图片

图片


提示:经过测试,我发现一个问题,如果脚本已经挂在物体身上,然后再修改脚本,为添加 RequireComponent 属性的话,完全不起作用,因此建议大家在用此属性的时候要注意。



3
ContextMenu()

ContextMenu()属性允许添加一个命令到该组件上,你可以通过右键或者点击设置图标来调用到它(一般用于函数),且是在非运行状态下执行该函数,如下所示:


图片

图片


4
HelpURL()

HelpURL()提供一个自定义的文档链接,点击组件上的文档图标既能打开到你指定的链接,如下所示:


图片

图片


提示:填写链接时,一定要写上 http:// 或者 https://,否则将无任何反应。



5
Range()、Multiline()、header()

Range()属性用于将一个值指定在一定的范围内,并在Inspector面板中为其添加滑块;Multiline()属性用于给 string 类型添加多行输入;header()属性用于添加属性的标题,具体操作如下所示:


图片

图片


简单的分解一下:


    1. 第9行,我们使用了 [Header("BaseInfo")] 为其设置了标题(为“BaseInfo”),如上图所示。


    2. 第10行,我们使用了 [Multiline(5)] 为其 name 属性添加了5行输入,如上图所示,明显输入框变大了。


    3. 第12行,我们使用了 [Range(-2,2)] 为其 age 属性指定了一个(-2,2)的范围,并且为其添加了一个滑块,如上图所示。



6
Tooltip()、Space()

Tooptip()属性用于在 Inspector 面板中,当鼠标停留在设置了Tooptip()的属性添加指定的提示;Space()用于为在 Inspector 面板两属性之间添加指定的距离,如下所示:


图片

图片



好了,至此,本篇内容算是结束了,大伙们可以利用刚刚学到的知识简单的设计一下自己的脚本,体验体验,后面的教程会更加精彩,敬请期待吧。


唠叨几句

克森最近在赶一个项目,居然涉及到了克森最不会的网页制作,但经过这段时间的努力,克森也会弄那么一点了,因此克森有打算在年底制作一个个人的网站,到时候我们一起聊聊天。



关于Unity墙外的世界


Unity墙外的世界 --- 这里有国外的经典案例、教程、文章,在这里你将会学到更为先进的Unity开发知识。


图片

更多经典,敬请期待






如果你没事儿干的话,克森请您点击一下阅读原文,至于为什么,你点了之后应该就知道了吧。


继续滑动看下一个
Unity墙外的世界
向上滑动看下一个