UGUI(学习笔记一)

UGUI六大基础组件

Canvas
画布组件,主要用于渲染UI控件。

Canvas Scaler
画布分辨率自适应组件,主要用于分辨率自适应。

Graphic Raycaster
射线事件交互组件,主要用于控制射线响应相关。

RectTransform
UI对象位置锚点控制组件,主要用于控制UI对象的位置和对齐方式。

EventSystem
UI事件响应的基础

Standalone Input Module
玩家输入事件响应系统和独立输入模块组件,主要用于监听玩家操作。

Canvas画布组件

Canvas组件是UGUI中所有UI元素能够被显示的根本。它主要负责渲染自己的所有UI子对象。如果UI控件对象不是Canvas的子对象,空间将不会被渲染。我们可以通过修改Canvas组件上的参数修改渲染模式。

值得注意的是:Unity场景中允许存在多个Canvas对象,可以分别管理不同画布的渲染模式,分辨率适应方式等等参数。

Canvas画布组件中最重要的是render mode(渲染模式),Canvas组件上所有其他属性都会根据渲染模式的变化而变化。渲染模式包括以下三种:

  • Screen Space Overlay(屏幕空间-覆盖)

    屏幕坐标系覆盖模式。在同一个相机下该模式下的UI永远位于所有物体的前面,除非我们使用两个不同的相机分别管理UI和游戏对象渲染。

    Pixel Perfect(像素完美):是否启动完美像素,启动此项将使UI图的效果更好,但是会更消耗性能。

    Sort Order(排序次序):Canvas排序值,值越大的Canvas会覆盖掉值小的Canvas。

    Target Display(目标显示):目标输出显示屏,默认为Display1。

    Additional Shader Channels(附加着色器通道):获取或设置要在创建 Canvas 网格时使用的附加着色器通道的遮罩

  • Screen Space-Camera(屏幕空间-相机)

    屏幕坐标系相机模式。在同一相机下游戏物体可能位于UI的前方,并且Canvas画布将随着Camera一起移动。不过使用此模式,我们一般会使用两个不同的相机分别管理UI和游戏对象渲染。

    Pixel Perfect(像素完美):和上面一样,完美像素。

    Render Camera(渲染摄像机):渲染相机项。将负责渲染UI的相机对象直接拖拽过来即可。此项不绑定则Unity会按照overlay模式渲染。

    Plane Distance(平面距离):UI平面距离UI相机的z轴距离。在同一相机下,我们可以通过调节此值来改变游戏对象和UI对象的先后顺序。

    Sorting Layer(排序图层):Canvas排序层。

    Order in Layer(图层顺序):Canvas层内排序值。

  • World Space(世界空间)

    世界坐标系模式。此模式下会将UI看坐是一个3D游戏物体,适合于做VR,AR的UI。

    Event Camera(事件摄像机):点击事件相机,如果不绑定,则此模式下的UI不能发生交互。

    Sorting Layer(排序图层):Canvas排序层。

    Order in Layer(图层顺序):Canvas层内排序值。

CanvasScaler-画布缩放控制器

  1. 查看当前设备分辨率:在编辑器模式下的Game窗口中可以查看到

  2. 参考分辨率:在其中一种模式下出现的分辨率,该分辨率会参与分辨率自适应的计算。

  3. 画布宽高和缩放系数:分辨率自适应会改变的参数,其中当前屏幕分辨率等于Canvas宽高*缩放系数。

  4. 分辨率大小自适应:分辨率自适应就是通过一定的算法将屏幕分辨率和参考分辨率参与计算得出的缩放系数,此缩放系数会影响所有的UI控件大小。