在Unity中针对屏幕自适应,我们该如何做呢?
具体操作的地方
在Unity的UI设置中,屏幕自适应我们该在什么地方进行设置呢?
看下面:

里面内容详解
里面的都具体是怎么使用的?在什么地方我们可以用到,下面我们将一一来进行详细的讲解。
Canvas Scaler(画布缩放器)
Canvas Scaler,我们叫它画布缩放器。
画布缩放器组件用于控制画布中UI元素的整体缩放和像素密度。此缩放会影响画布下的所有内容,包括字体大小和图像边框。

| 属性 | 说明 |
|---|---|
| UI Scale Mode |
确定画布中的UI元素的缩放方式
|
|
Constant Pixel Size
|
无论屏幕大小如何,UI元素都保持相同的像素大小
|
|
Scal With Screen Size
|
屏幕越大,UI元素越大。
|
|
Constant Physical Size
|
无论屏幕大小和分辨率如何,UI元素都保持相同的物理大小
|
屏幕自适应我们是在Canvas上进行设置。选中Canvas,然后再UI Scale Mode中根据需求进行选择。
1、Constant Pixel Size
连续的像素大小,这也就意味着,你布局的UI元素都是实际的大小,比如你在当前分辨率界面上建了一个50px * 50 px 那么当你的分辨率变大时,你就要重新设置,不然50 * 50 在新的分辨率下就会非常难看。
而且这个是像素大小,即使没有改变分辨率,在不同设备上(像素大小可能不同)的表现也有可能很诡异。
| 属性 | 功能 |
| Scale Factor | 按此系数缩放画布中的所有UI元素 |
| Reference Pixels Per Unit | 如果精灵具有此“Pixels Per Unit”设置,则精灵中的每个像素将覆盖 UI 中的一个单位。 |
2、Scal With Screen Size
| 属性 | 功能 |
| Reference Resolution | UI 布局设计的目标分辨率。如果屏幕分辨率较大,则 UI 会放大,如果较小,则 UI 会缩小。 |
| Screen Match Mode | 在当前分辨率的宽高比不适应参考分辨率时,用于缩放画布区域的模式。 |
| Match Width Or Height | 以宽度、高度或二者的某种平均值作为参考来缩放画布区域。 |
| Expand | 水平或垂直扩展画布区域,使画布不会小于参考。 |
| Shrink | 水平或垂直裁剪画布区域,使画布不会大于参考。 |
| Match | 确定是否以宽度、高度或二者的某种平均值作为参考进行缩放。 |
| Reference Pixels Per Unit | 如果精灵具有此“Pixels Per Unit”设置,则精灵中的每个像素将覆盖 UI 中的一个单位。 |
3、Constant Physical Size
连续的物理大小,与第一条相对,在不同像素的设备上都会有良好的表现,比如 2cm * 2cm, 在不同设备上都会这么大。
| 属性 | 功能 |
| Physical Unit | 用于指定位置和大小的物理单位。 |
| Fallback Screen DPI | 在屏幕 DPI 未知时采用的 DPI。 |
| Default Sprite DPI | 用于精灵的每英寸像素,使其“Pixels Per Unit”设置与“Reference Pixels Per Unit”设置匹配。 |
| Reference Pixels Per Unit | 如果精灵具有此“Pixels Per Unit”设置,则其 DPI 将与“Default Sprite DPI”设置匹配。 |
Canvas下的操作
将Canvas中的Render Mode修改为Word Space时,Canvas Scaler下的内容也跟着改变了,具体解释如下:
World Space Canvas 的设置(画布 (Canvas) 组件设置为 World Space 时显示):
| 属性 | 功能 |
| Dynamic Pixels Per Unit | 用于 UI 中动态创建的位图(如文本)的每单位像素量。 |
| Reference Pixels Per Unit | 如果精灵具有此“Pixels Per Unit”设置,则精灵中的每个像素将覆盖世界中的一个单位。如果“Reference Pixels Per Unit”设置为 1,则精灵中的“Pixels Per Unit”设置将按原样使用。 |
详细说明
对于设置为“Screen Space - Overlay”或“Screen Space - Camera”的画布,画布缩放器 UI Scale Mode 可以设置为 Constant Pixel Size、Scale With Screen Size 或 Constant Physical Size。
Constant Pixel Size
使用 Constant Pixel Size 模式时,可在屏幕上按像素指定 UI 元素的位置和大小。这也是画布在未附加任何画布缩放器时的默认功能。但是,借助画布缩放器中的“Scale Factor”设置,可以向画布中的所有 UI 元素应用常量缩放。
Scale With Screen Size
使用 Scale With Screen Size 模式时,可以根据指定参考分辨率的像素来指定位置和大小。如果当前屏幕分辨率大于参考分辨率,则画布会保持只具有参考分辨率的分辨率,但是会放大以便适应屏幕。如果当前屏幕分辨率小于参考分辨率,则画布会相应缩小以适应屏幕。
如果当前屏幕分辨率的宽高比与参考分辨率不同,则单独缩放每个轴以适应屏幕会形成非一致缩放,通常不希望发生这种情况。相反,ReferenceResolution 组件会使画布分辨率偏离参考分辨率,以便遵循屏幕的宽高比。可以使用 Screen Match Mode 设置控制此偏离的行为方式。
Constant Physical Size
使用 Constant Physical Size 模式时,可按物理单位(如毫米、点或派卡)指定 UI 元素的位置和大小。此模式要求设备正确报告其屏幕 DPI。对于不报告 DPI 的设备,可以指定回退 DPI。
World Space
对于设置为“World Space”的画布,可以使用画布缩放器来控制画布中 UI 元素的像素密度。
参考:https://docs.unity3d.com/cn/2018.4/Manual/script-CanvasScaler.html

浙公网安备 33010602011771号