一.Canvas Scaler 组件介绍

在Unity 项目开发过程中,对于UI 界面有一个很关键的技术,叫做“屏幕自适应”,就是说我们的游戏UI要能自动适配不同的屏幕比例和屏幕尺寸。 在UGUI 中用于实现“屏幕自适应”需要用到两个组件: ①AnChors [锚点] ②Canvas Scaler [画布定位器] 这两个组件配合使用,才能相对完美的实现UI 屏幕自适应的开发需求。 Canvas Scaler 组件有三种定位模式: ①Constant Pixel Size ②Scale With Screen Size ③Constant Physical Size

二.Constant Pixel Size 模式

1.模式介绍 该模式可以称之为“恒定(固定)像素大小模式”,UGUI 默认就是该模式。 该模式下的Scale Factor 参数会作用于Canvas 游戏物体的Scale 参数。 在该模式下无论屏幕尺寸发生什么样的变化,UI 元素的大小都不会改变。 2.相关属性 Scale Factor:比例因子,默认保持为1 即可; Reference Pixels Per Unit:参考像素单位,默认保持为100 即可。

[

](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112808-300x287.png)
](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112808-300x287.png)

三.Scale With Screen Size 模式

1.模式介绍 该模式可以称之为“跟随屏幕尺寸缩放模式”,在手游项目开发中,使用该模式。 该模式下UI 元素的尺寸就不是固定的了,会跟随屏幕的尺寸比例进行相应的自动缩放。 2.相关属性 Reference Resolution:参考分辨率,设置成项目开发时使用的分辨率。 Screen Match Mode:屏幕匹配模式,推荐用第一种模式。 |—Match Width Or Height [匹配宽度或者高度] |—Expand [扩大] —Shrink [缩小] Match:匹配,当屏幕匹配模式选择为Match Width Or Height 时该属性有效。 一个滑块控制条,0~1,代表宽和高。 横屏游戏用Height 匹配,竖屏游戏用Width 匹配[以短方向进行匹配]。

[

](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112809-282x300.jpg)
](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112809-282x300.jpg)

四.Contant Physical Size 模式

该模式可以称之为“恒定(固定)的物理尺寸”,和Constant Pixel Size类似,但是只能通过RectTransform来改变大小,在该模式下UI 元素永远保持固定的物理尺寸,使用场合较少. [

](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112810-288x300.jpg)
](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112810-288x300.jpg)
总结: Constant Pixel Size和Scale With Screen Size,都是“固定模式”不适合手游项目的开发,手游由于屏幕分辨率不统一,必须要做UI 自适应,所以选择Scale With Screen Size 模式。 目前只靠这个模式还无法完成自适应,还需要用到AnChors 组件。