Unity3D之UGUI学习笔记(一):UGUI介绍以及Canvas

news/2024/7/5 21:08:15 标签: ui, 游戏

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外,还添加了关于标准输入(即鼠标键盘)和触摸输入两个输入脚本。


http://www.niftyadmin.cn/n/1132317.html

相关文章

如何让joomla的不同页面使用不同的背景图片

为什么80%的码农都做不了架构师?>>> 作为一个站长最关心的就是网站的访问量,要使自己网站的访问量上去SEO优化是必不可少的,但是现在很多站长只关心网站的优化而忽视了网站界面的美 观,一个好的网站想要留住客户&…

javascript 浮点数加减乘除计算会有问题, 整理了以下代码来规避这个问题

/** js数学计算 add by yan*//**** 加法函数,用来得到精确的加法结果** 说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。** 调用:accAdd(arg1,arg2)** 返回值&#xff1…

为什么你的数据分析报告,总被领导打回?

咱们先来设想一个场景,一个会议室里坐满了人,正在做报告的年轻人西装笔挺,头发书的一丝不苟,PPT上列满了数据和图表,他正在论证一个什么东西。年轻人讲了很多,可是在台下听报告的一个穿着随意的大佬&#x…

讲给普通人听的分布式数据存储(转载)

转载:http://www.linuxeden.com/html/news/20150925/162996.html 虽然说是讲给普通人的,恐怕没有数据理论知识也是看不懂的,不过已经将的很明白了,个人觉得将的很不错的一点: 联系到我们之前的主/副例子&am…

window.Event参数详解

原文地址:window.Event参数详解作者:cz0090704window.evet 说明 event代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等。 event对象只在事件发生的过程中才有效。 event的某些属性只对特定的事件有意义。比如&#…

2019年中国大数据BI(商业智能)行业预测报告

商业智能(Business Intelligent)也被称为商业智慧或商务智能,人们习惯的称呼为“BI“,围绕BI工具建设的平台常称为”某某BI系统“、”某某报表平台“、”某某管理驾驶舱“等。BI(商业智能)技术提供使企业迅…

C#将string转换为十六进制

/// <summary>/// 将string格公式为十六进制数据/// </summary>/// <param name"msg">/// </param>/// <returns>/// </returns>public static string tenToSixteen(string msg){long number Convert.ToInt64(msg);return Conv…

为11.2.0.2 Grid Infrastructure添加节点

转自:http://www.askmaclean.com/archives/add-node-to-11-2-0-2-grid-infrastructure.html 在之前的文章中我介绍了为10g RAC Cluster添加节点的具体步骤。在11gr2中Oracle CRS升级为Grid Infrastructure&#xff0c;通过GI我们可以更方便地控制CRS资源如:VIP、ASM等等&#x…