一、说在前面的

1、unity内置的ui系统,无论是在性能的表现上、功能的强大性上、制作复杂ui的便捷性上,还是其它的一些方面都不如一些第三方的插件来的好,如:NGUI和DF-GUI(PS: 后者比前者要好很哦,推荐!))。

2、虽然UnityGUI不如某些第三方的插件,但是它在做一些简单的测试上,做数据高度上还是要方便一些的;而且如果你要做Inspector的定制与Unity插件开发的话,UnityGUI你是绕不过去的哦。所有大概熟悉一下UnityGUI还是必要的!

3、关于UnityGUI的所有知识,在官方文档中的都有详细的介绍,在圣典上也有一一翻译。我这里只是做一些简单的记录,也许有不对的地方,也许以后还会所补充!

4、还有就刚接触这块时觉得UnityGUI相关API有点乱,觉得来必要记录一下。

二、GuiLayer组件

GuiLayer是显示UnityGUI元素的必要组件,且必须附在一个相机对象上!不然你的UI是显示不出来的。

三、古老的组件

1、这部分主要是GuiTextGuiTexture组件,GuiElement是它们的基类,详参相应的链接。
2、GuiText以用来打印显示一些调试信息和简单的数据显示。
3、GuiTexture也在用来做一些简单ui部件或整个游戏画面的背景。

四、UnityGUI系统的分类

这部分就比较复杂一些了。
1、首先它可以分成两个独立的部分:非Editor类与Editor类。其中每部分中可以分成两个独立的部分:GUI系和GUILayout系。其中的GUI系下的组件的名字基本上只用“GUI”开头,而GUILayout系下的组件的名字基本上是“GUILayout”开头的。这样就有四个相对独立的UI系统了,这四个部分,每个拿出来都能相对完整个完成一个UI制做。
2、不同的是Editor类是用于编译器的制定与扩展方面,GUILayout系要比GUI系在功能上要强一点而以。呵呵,是不是有点绕,有点乱,有点晕。非Editor类与Editor类共存还点说的过去,GUILayout系要比GUI系共存就有点那个了。
3、本来一个不复杂的UI系统,搞这好几套,还混合着用,就变得有点头疼不。出现这种情况可能是为了向上兼容吧,不过代价有点大啊。
4、不过只要我们理清楚它们的别,尽量只用一种,应该还好吧!下面我将会重点记录GUILayout系的UI,

五、GUILayout系下的组成

1、样式的组件

GUISkinGUIStyleGUISetting这是四个类别所共享的。
GUISkin是一组件GUIStyle的集合。GUISkin包含一组所有控件的样式,可以修改,也可自定新的。
GUISetting是UI的一些标准设置,这些设置被所有在GUISkin中的元素共享。它也是包含在GUISkin的组件的inspector下的。
GUIStyle定义一个界面元素(或者一个控件)如何渲染的所有信息,如它使用的字体、图标位置、背景图片和间距等等,很多的设置。

2、控件构造组件

GUILayout是用来结构各类控件的。
构造一个控件可以有三个参数:
内容--文本/图片/GUIContent;
样式--GUIStyle对象;
布局选项--GUILayoutOption对象,这个参数的数量是可变的。用于控制控件的大小,当于GUI系中的Rect参数。注:GUILayoutOption对象要通过GUILayout组件下的如下方法获取
GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight。

3、布局组件

布局组件有两个:GUILayout和GUILayoutUtility.
这里要说一下GUILayout,这是个很牛X的组件。它有三大功能:创造控件、设置并获取GUILayoutOption对象、和布局控件的功能。
GUILayout的布局功能有:插空白、垂直布局、水平布局、滚动视图布局、还一个窗口布局。混合嵌套这些布局方式,基本上就要得到你想要的UI了。
GUILayoutUtility这个组件是GUILayout的一个补充,它提供了一个方法,在构造一个控件之前,先获取它的矩形大小或先设置一个要使用的矩形大小。

六、说在最后的

1、上面我只大概说了一下UnityGUI系的UI组件的用法,其它的也差不多。
2、前面已经说了,UnityGUI系统可以分为相对四个独立的部分。它们之间有共有的组件,有不同但相似的组件,也有只用的于编辑器的组件。只要我们分开来学习,是不学混乱的。分合思想在应该也是很重要的学习方式!

Unity3d 内置图形界面系统(Editor GUI)的更多相关文章

  1. Unity3d 网络编程(三)(Unity3d内置简单的网络server编制)

    使用Unity3d内置的网络建立一个简单的server.主机时,请使用机器.创建一个client连接到本机. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv ...

  2. 如何从光盘本地安装CentOS 7图形界面(Gnome GUI)

    本例中通过在CentOS 7中修改repo文件,直接从光盘或者ISO镜像文件安装Gnome图形界面(Gnome GUI),从而避免耗时从官网或镜像下载. 1.首先确保光盘或者ISO镜像文件正确连接到客 ...

  3. django内置的认证系统

    Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Djang ...

  4. Swing AWT一套新的图形界面系统

    Swing 是在AWT的基础上构建的一套新的图形界面系统,它提供了AWT 所能够提供的所有功能,并且用纯粹的Java代码对AWT 的功能进行了大幅度的扩充. 例如说并不是所有的操作系统都提供了对树形控 ...

  5. win10开启 linux Bash命令(win10内置了linux系统支持)

    win10开启 Ubuntu linux Bash命令(win10内置了linux系统支持) 第一步: 先在设置→更新和安全→针对开发人员中选择"开发人员模式",点击后会下载&qu ...

  6. [自制操作系统] BMP格式文件读取&图形界面系统框架/应用接口设计

    本文将介绍在本人JOS中实现的简单图形界面应用程序接口,应用程序启动器,以及一些利用了图形界面的示例应用程序. 本文主要涉及以下部分: 内核/用户RW/RW调色板framebuffer共享区域 8bi ...

  7. Tkinter图形界面设计(GUI)

    [因为这是我第一个接触的GUI图形界面python库,现在也不用了,所以大多数内容都来自之前花 钱买的一些快速入门的内容,可以当作简单的知识点查询使用] 在此声明:内容来自微信公众号GitChat,付 ...

  8. Unity3D内置着色器

    Unity内部提供了一些可以直接使用的着色器,这些内置着色器包括以下6个方面: (1)Performance of Unity shaders 着色器的性能和两个方面有关:shader本身和rende ...

  9. 基于OSGI.Net的图形界面系统

    在2013年的十月份有幸接触了osgi.net和iopenworks的创始人,了解和学习的插件式开发,开始了后台数据的处理生涯. 第一个有图形界面的系统——智能农业的环境监测系统,其实在这个系统中所有 ...

随机推荐

  1. SQL Server SQL语句执行顺序

    执行顺序: 1.FROM:对FROM子句中前两个表执行笛卡尔积生成虚拟表vt1 2.ON:对vt1表应用ON筛选器只有满足 为真的行才被插入vt2 3.OUTER(join):如果指定了 OUTER ...

  2. android的Project has no default.properties file! Edit the project properties to set one. 的解决

    网上找来这种方法基本解决: 在我们导入Android工程时,有时候会出现如题所述的错误,打开工程目录可以看到,目录下的default.properties文件没有了或者多出了一个project.pro ...

  3. 函数改变全局变量-JS

    切记,一定按三步走: 1. 全局变量声明 2. 函数声明 3. 函数调用 正确做法: var dataStr = null; function remoteCallback(data) { dataS ...

  4. ASP.NET控件绑定数据源

    DataList/GridView/Repeater DataSet表示数据集,其中包含表,约束和表之间的关系.与现有数据源的交互通过DataAdapter来控制. 源代码示例: SqlDataAda ...

  5. 上载EXCEL到SAP系统的方法之一

    TEXT_CONVERT_XLS_TO_SAP实例 使用:gui_upload去上传excel数据,每次都出现乱码,不管中文英文都乱码. 至今不知道gui_upload是否支持excel文件上传,. ...

  6. 更换SAP主界面右边区域背景主题

    1)  Tcode:SMW0(注意,最后面是零,不是英文字母O),选择第二个单选按钮 2)点击回车后,直接点击运行按钮. 3)在SAP WEB 资源库:对象显示 页面,点击:新建 4)创建对象名称,名 ...

  7. C语言中do...while(0)用法小结

    在linux内核代码中,经常看到do...while(0)的宏,do...while(0)有很多作用,下面举出几个: 本文地址:http://www.cnblogs.com/archimedes/p/ ...

  8. JAVA基础学习day17--集合工具类-Collections

    一.Collection简述 1.1.Collection与Collections的区别 Collections是集合的静态工具类 Collection:是集合的顶级接口 二.Sort 2.1.sor ...

  9. 如何让 UITableViewCell 中的 imageView 大小固定

    UITableView可以算是使用频率最高的组件之一的,在开发过程中经常需要展示一些简单的信息列表常见列表布局 如图,很多页面其实就是这种展示结果,通常需要imageView,textLabel,de ...

  10. 多线程在iOS开发中的应用

    多线程基本概念 01 进程 进程是指在系统中正在运行的一个应用程序.每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内. 02 线程 2-1 基本概念 1个进程要想执行任务,必须得有线程 ...