【Unity】入门学习笔记180614——UI设计(10)——锚定系统

当屏幕的尺寸重新设置,透视角度发生变化,UI当如何变化

在最新的Unity UI系统中,可构建动态和响应式设计,且无需考虑设备的显示分辨率

该思想可以通过缩放组件予以补充,并直接反映于Canvas上

包括:

定位机制

锚点

利用Canvas Scaler缩放UI

构建响应式状态栏


1、设置锚点

Anchor可相对于任意父UI GameObject进行设置,而非仅是Canvas,因此绑定至父Rect Transform

Anchor存在的意义在于,位置的设定不受屏幕尺寸的改变而变化

当选取某一预置项并同时按下Alt键时,可将GameObject移至Anchor位置处,而非Anchor

锚点固定系统的局限性在于,重新设置容器的尺寸,会丢失原有的位置结果


2、拉伸和变形

在大多数UI设计中,仅有特定位置处绘制对象尚且不够,有时需要填充屏幕的特定部分,例如宽度的50%。此时,如果屏幕尺寸的缩至元素宽度以下,则固定位置方案难以满足要求。

示例:

要求:状态栏位于屏幕上方中心位置处

          屏幕上方和状态栏之间包含20歌像素间隙

          全部设备上,状态栏约占屏幕宽度50%

          状态栏的高度应为25个像素

          状态栏应从左侧进行填充,且从左至右的范围值表示为0~100

采用锚点的操作:

【Unity】入门学习笔记180614——UI设计(10)——锚定系统


3、缩放操作和分辨率

针对上层Canvas,Canvas Scaler组件的默认设置定义为Constant Pixel Size模式

对于Canvas而言,这仅可设置默认精灵对象的Scale Factor和Reference Pixels Per值,所输入的各项值与现实分辨率无关


针对Canvas Scaler的下一个选项则是使用Reference Resolution,表明无论屏幕尺寸如何变化,所显示的UI在屏幕上保持相同的分辨率。在该模式下,通常自定义分辨率尺寸,Canvas整体与屏幕适配。


若将Canvas Scaler模式设置为Constant Physical Size,则用户可对操作目标实现全权操控,此时用户可设置自己的测算方式,包括点以及Centimeters和Millimeters中的真实场景的测算方案。随后,用户可通过DPI方式设置默认的屏幕尺寸,进而定义全屏模式下的宽高比。若出现滑块消失的状况,则需要再次设置元素的尺寸。


各个模式均包含各自的优缺点,针对场景中的多个Canvas,用户可使用多个类型的UI Scale Mode。

通常来说,针对最前面的Canvas,一般使用Scale with Sreen Size模式,该模式提供了最优的尺寸重置选项。然而,对于完美像素而言,Canvas Scaler的Constant Physical Size模式更加适宜,通常会用作最前方Canvas的子Canvas。