一、说在前面的

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. [程序人生]前途无"亮‘’的大学

    转眼之间就到大四了,今天晚上很迷茫,很纠结,想了好多,好多,真的,长大之后,自从第一次失恋之后,第一次会想到这么的多.     嗯,先自我介绍哈吧,我是从云南的大山里走出来的孩子,什么样的大山,就是到 ...

  2. 如何解决cellIndex在IE下兼容性问题

    在不久前的项目中,涉及到一个表格数据展示在IE下出现兼容性问题.经过一段时间的排查,居然是一个cellIndex属性导致的. cellIndex表示返回一行的单元格集合中单元格的位置索引. 例子: & ...

  3. ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded

    The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramewor ...

  4. Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39

    Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39 V1  初步实现sina csdn cnblogs V2  实现qzone sohu 的发帖 ...

  5. 实验12:Problem I: 成绩排序

    Home Web Board ProblemSet Standing Status Statistics   Problem I: 成绩排序 Problem I: 成绩排序 Time Limit: 1 ...

  6. 桥牌笔记:Skill 4 Series A–Deal 5

    南主打5C. 此牌的难点在于:如果黑桃4-2分布时,有没有打成的希望?看来黑桃.红桃.方块各1个失张无法避免? 但希望还是有的,那就是东家拿2张黑桃,并且有3张将牌. 这时庄家可以清2轮将牌,拔2轮黑 ...

  7. Android WelcomeActivity 启动画更换网络图片

    1.运行效果  第一张是本地的启动图,第二张是网络启动图       2.用到的第三方jar包   Android-Universal-Image-Loader-master 不熟的请看  Andro ...

  8. Objective-C 理解之方括号[ ]的使用

      1,用于通知某个对象该做什么,即通知对象去执行某动作. 在Objective-c中,“[]”的意义:它们用于通知某个对象该做什么.这种通知对象执行某中操作的行为被称为“发送消息”. 例如: [sh ...

  9. 【读书笔记】iOS-NSPredicate

    一,Cocoa提供了一个名为NSPredicate的类,它用于指定过滤器的条件.可以创建NSPredicate对象,通过该对象准确地描述所需的条件,对每个对象通过谓词进行筛选,判断它们是否与条件相匹配 ...

  10. 【读书笔记】iOS-引用计数

    Cocoa采用了一种称为引用计数的技术,有时也叫做保留计数.每个对象有一个与之相关联的整数,称作它的引用计数器或保留计数器.当某段代码需要访问一个对象时,该代码将该对象的保留计数器值加1,表示“我要访 ...