UGUI是Unity3D4.6官方提供的UI系统,支持2D和3D UI的开发。

Unity3D UI史

OnGUI

在Unity4.6之前,官方提供的是OnGUI函数来开发UI界面,当然问题也比较多,首先不支持可视化开发,其次UI始终位于所有3D对象的上方,无法实现在UI上添加3D模型的效果。

现在一般这套系统多用来在Unity编辑器中开发界面或者快速搭建一些调试界面时使用。

NGUI

大名鼎鼎的NGUI是可以看做是开发Unity游戏必备的插件,支持可视化开发,同时也支持2D和3D UI的开发,想在UI上显示3D模型和粒子也没问题。

我也有一套NGUI的学习笔记,还在完善中,详情可以点击:http://www.cnblogs.com/hammerc/p/4481597.html

UGUI

首先这套官方的UI系统就是被Unity请去的NGUI作者开发的,所以在操作上两者大体一致,同时UGUI是开源的系统,大家可以在下面的连接中获得UGUI的源码:

https://bitbucket.org/Unity-Technologies/ui/src

官方案例

大家可以下载一下官方提供的UGUI案例:

https://www.assetstore.unity3d.com/en/#!/content/25468

Canvas

在UGUI中,其根容器为Canvas,我们发现无论添加任何UI到场景中,都会默认生成Canvas以及EventSystem。

所有的UI都必须作为Canvas的子级进行添加。

我们接下来详细的看看Canvas的一些设置:

Canvas

Render Mode:渲染模式,如下

  1. Screen Space - Overlay:2DUI,始终显示在屏幕最前方。
  2. Screen Space - Camera:2D及3DUI,绑定到指定摄像机,可显示3D内容,同时UI可以进行3D方面的旋转,UI可以获得3D效果。
  3. World Space:3DUI,存在3D空间中的UI。

Pixel Perfect:是否已像素的方式来显示UI。

Sort Order:不同Canvas之间的前后显示排列设置。

Canvas Scaler

Ui Scale Mode:UI缩放模式,如下:

  1. Constant Pixel Size:像素大小始终不变,即一个100*100的图片在任何的分辨率下都占用100*100的像素。一般PC上会使用这种方式,因为PC端分辨率差异并不大。
  2. Scale With Screen Size:不关心图片的实际像素大小,而只关心Width及Height值,这个值如果是1000,那么100高度的图片在任何分辨率下都只占用屏幕1/10的尺寸。一般移动端会使用这种方式,因为移动端分辨率差异较大。
  3. Constant Physical Size:根据物理单位来进行缩放。

Graphic Raycaster

场景中的射线调整,用于交互事件的配置。

EventSystem

我们简单看下EventSystem,后面会有笔记详细记录EventSystem的使用方法:

这里绑定了3个脚本,可以发现除了本身的EventSystem外,还添加了关于标准输入(即鼠标键盘)和触摸输入两个输入脚本。

Unity3D之UGUI学习笔记(一):UGUI介绍以及Canvas的更多相关文章

  1. HTML+CSS学习笔记(1) - Html介绍

    HTML+CSS学习笔记(1) - Html介绍 1.代码初体验,制作我的第一个网页 <!DOCTYPE HTML> <html> <head> <meta ...

  2. Typescript 学习笔记一:介绍、安装、编译

    前言 整理了一下 Typescript 的学习笔记,方便后期遗忘某个知识点的时候,快速回忆. 为了避免凌乱,用 gitbook 结合 marketdown 整理的. github地址是:ts-gitb ...

  3. cocos2d-x入门学习笔记,主要介绍cocos2d-x的基本结构,并且介绍引擎自带的示例

    cocos2d-x 3.0 制作横版格斗游戏 http://philon.cn/post/cocos2d-x-3.0-zhi-zuo-heng-ban-ge-dou-you-xi http://blo ...

  4. InterSystems Ensemble学习笔记(一) Ensemble介绍及安装

    系列目录 InterSystems Ensemble学习笔记(一) Ensemble介绍及安装InterSystems Ensemble学习笔记(二) Ensemble创建镜像, 实现自动故障转移 一 ...

  5. Unity3D之UGUI学习笔记(三):EventSystem

    在UGUI中,EventSystem实现了所有关于交互方面的功能,和NGUI不一样的地方是,我们终于可以摆脱添加Box Collider了! 下面我们来学习一下. 对于按钮来说,直接有onClick的 ...

  6. UGUI 学习笔记

    1.UGUI中是没有depth的概念,那要怎么在脚本中动态的改变一个UI元素在hierarchy中的排序位置呢? 放到最上面 Transform.SetAsFirstSibling最下面Transfo ...

  7. vue.js 2.0 官方文档学习笔记 —— 01. vue 介绍

    这是我的vue.js 2.0的学习笔记,采取了将官方文档中的代码集中到一个文件的形式.目的是保存下来,方便自己查阅. !官方文档:https://cn.vuejs.org/v2/guide/ 01. ...

  8. Apache Ignite 学习笔记(一): Ignite介绍、部署安装和REST/SQL客户端使用

    Apache Ignite 介绍 Ignite是什么呢?先引用一段官网关于Ignite的描述: Ignite is memory-centric distributed database, cachi ...

  9. MeayunDB学习笔记(一) MeayunDB介绍及安装

    系列目录   MeayunDB介绍-高性能分布式内存数据库 MeayunDB学习笔记(一)MeayunDB介绍及安装 MeayunDB学习笔记(二)批量导入数据 MeayunDB学习笔记(三)索引应用 ...

随机推荐

  1. abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?

    abstract的method不可以是static的,因为抽象的方法是要被子类实现的,而static与子类扯不上关系! native方法表示该方法要用另外一种依赖平台的编程语言实现的,不存在着被子类实 ...

  2. RazorEngine 3.6.5.0

    public class Person { public string Name { get; set; } public string Code { get; set; } } var templa ...

  3. 基于Live555,ffmpeg的RTSP播放器直播与点播

    基于Live555,ffmpeg的RTSP播放器直播与点播 多路RTSP高清视频播放器下载地址:http://download.csdn.net/detail/u011352914/6604437多路 ...

  4. 用实例分析H264 RTP payload

    用实例分析H264 RTP payload H264的RTP中有三种不同的基本负载(Single NAL,Non-interleaved,Interleaved) 应用程序可以使用第一个字节来识别. ...

  5. 修改Oracle 表空间名称 tablespace name

    修改表空间名称步骤如下: 1. 使用oracle用户登录执行 $sqlplus / as sysdba 2. 执行修改表空间命令如下 SQL> alter tablespace  TEST re ...

  6. [持续更新]android stduio的一些小技巧

    1.导入第三方jar 无法和eclipse一样可以直接刷新就可以导入libs里的jar,要到jar文件上右键按add jar. 2.其他依赖项目里有support-v4包的时候 在Libs里还是要有s ...

  7. HDU5779 Tower Defence (BestCoder Round #85 D) 计数dp

    分析(官方题解): 一点感想:(这个题是看题解并不是特别会转移,当然写完之后看起来题解说得很清晰,主要是人太弱 这个题是参考faebdc神的代码写的,说句题外话,很荣幸高中和faebdc巨一个省,虽然 ...

  8. Linux基本命令(3)文件备份和压缩命令

    文件备份和压缩命令 在Linux中,常用的文件压缩工具有gzip.bzip2.zip.bzip2是最理想的压缩工具,它提供了最大限度的压缩.zip兼容性好,Windows也支持. 命令 功能 bzip ...

  9. 为Fitnesse-20140630定制RestFixture代码

    摘要:Fitnesse插件RestFixture在最新版Fitnesse输出测试结果为html文本,而非html.本博文记录RestFixture定制代码的过程. 准备开发环境 假定你已经正确安装JD ...

  10. 告别where 1=1 最佳方案分享

    已经有2年没有用过where 1=1了,没想到换了家公司后,又让我看到了它.在网络上面搜索了一下,发现没有人提供一个比较好的方案来解决这一问题.很多人说可以让数据库的优化机制去处理,但是,我想对于大部 ...