最近想写一套关于UGUI所有控件的基础使用教程系列,主要是根据本人的使用心得以及部分测试附带字面翻译来写的,所以其中可能难以避免会有不正确的地方。

好了进入主题,既然是第一篇,我觉得我有必要先介绍一下UGUI必不可缺的两个组件:Canvas和EventSystem

Unity引擎GUI之Canvas和EventSystem-LMLPHP

事实上在场景中第一次创建UGUI控件的时候,这两个物体都会自动添加到场景中,当然,必不可缺的不是这两个物体,而是他们身上挂载的组件。

一、Canvas作为所有UGUI控件的父级,他管理着下属所有控件的布局。

Unity引擎GUI之Canvas和EventSystem-LMLPHP

Canvas组件:

Render Mode(渲染模式):这里一般选择Screen Space - Camera,类似于NGUI的方式用特定的UI摄像机渲染UI,这种渲染模式个人觉得是最佳的,他完全将场景物体和UI进行了分类管理,使得后期开发更加的醒目和易于管理。

Render Camera(渲染相机):设置好独立相机渲染模式,这里为其指定一个渲染UI的相机,该相机的属性要做一些必要的调动。

Unity引擎GUI之Canvas和EventSystem-LMLPHP

Clear Flags设置为Depth only(只渲染深度),Culling Mask只保留UI层,Projection设置为Orthographic(正交模式),Depth深度的值必须大于场景主摄像机的值,这样UI才会一直保持在场景物体之上。

Unity引擎GUI之Canvas和EventSystem-LMLPHP

Canvas Scaler组件:

Ui Scale Mode(UI缩放模式):也就是UI在自适应时的缩放方式,这里选择第二种方式跟随屏幕缩放。

Reference Resolution(参照分辨率):一般设置为1920*1080,当下主流的最佳分辨率,UI整体将根据16:9的方式适应缩放。

Graphic Raycaster组件:

该组件作为UGUI开启射线投射必不可缺的组件,其属性我们就不用去动了,保持初始值即可。

二、EventSystem作为的是整个UGUI的事件系统(当然他也可以分配非UI物体的事件)。

Unity引擎GUI之Canvas和EventSystem-LMLPHP

Event System组件:事件获取与分发必不可缺的组件

Standalone Input Module组件:标准输入模块

Touch Input Module组件:触摸输入模块

这三个组件都是必不可缺的,没有必要的话,我们不必去改动其属性,保持初始值即可。

完成了这两步,接下来就可以进行UGUI界面的开发了。

05-11 20:18