在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

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
posted @ 2021-04-21 16:19  南宝  阅读(1751)  评论(0)    收藏  举报