关于Canvas Scaler的作用

今天的逼格来自于Canvas的一个组件Canvas Scaler(Script)

    话说像勃主这么高(矮)大(穷)上(丑)的一个人,怎么又要来写这种低级基础的东西~~,这个原因吗,勃主就是这么注重基础!!
    (画外音:切,你就是刚接触unity的小菜鸟,高大上的你也接触不到~。~)
    其实呢,也就是被他坑过了,所以在此填坑。
    话说坑在何方?想当年年少轻狂时,层做了个类似下图的玩意:

这里写图片描述

    勃主大笑三声,把screen的大小拖动了一下,然后它就变成了这个样子:

这里写图片描述

    这是一件相当窝巢的事情,勃主苦练锚点三十年,终究还是没有搞定,知道师父他老人家蛋蛋的提点了一句“看看Canvas Scaler”。。。。。。
    上图,勃主当时的scaler设定是这样的:

这里写图片描述

    嗯,问题就在这里了,UI扩展模型——固定像素大小!!!!

    好吧,淡淡的改成了下面这样:

这里写图片描述

    问题解决了,ui怎么捏都不会变形了。。。
    到这里,好奇心颇重的勃主撩起三脚猫的English打开了官方API:

官方API的老巢

    对于Canvas Scaler的描述是这样的“The Canvas Scaler component is used for controlling the overall scale and pixel density of UI elements in the Canvas. This scaling affects everything under the Canvas, including font sizes and image borders.”(画布定标器组件是用于控制UI元素的整体规模和像素密度在画布上。这个扩展影响在画布上的一切,包括字体大小和图像边界。)我知道,谁都受不了这该死的鸡翻,所以我还得重新翻过:Canvas Scaler是用来控制Canvas上的UI元素整体规模和像素的组件,这个扩展影响Canvas上的一切,包括字体大小和图像边界。
    Canvas Scaler的ui scale mode有三种值(constan pixel size、scale with screen size和constant physical size),接下来我就来介(翻)绍(译)一下这三种情况下的各参数代表的含义

1.Constant Pixel Size 不变像素大小
这里写图片描述
参数:
Scale Factor–大小比例;
Reference Pixels Per Unit – ,每单位代表像素量
2.Scale With Screen Size根据屏幕大小定标
这里写图片描述
-Reference Resolution(参考分辨率)
The resolution the UI layout is designed for. if the screen resolution is larger, the UI will be scaled up, and if it’s smaller, the UI will be scaled down.
参照这个UI布局所依据的分辨率,如果屏幕分辨率更大,那么UI会变大,如果屏幕分辨率更小,那么UI会变小。
-Screen Match Mode(屏幕匹配模式)
Match Width or Height 参考宽或者高或者两者来规划画布
Expand 横纵两个方向扩大画布使画布不小于参考
Shrink 裁切画布使画布不大于参考
-Reference Pixels Per Unit 每单位的参考像素

当选择Match Width or Height时会有Match滑块,用来决定width和height的影响比例

3.Constant Physical Size 不变的物理尺寸
这里写图片描述
Physical Unit可以设置物理单位
Fallback Screen DPI屏幕分辨率不明是采用的分辨率
Default Sprite DPI 精灵每英寸的默认像素
Reference Pixels Per Unit
4.当Canvas的Render Mode属性为world space时
这里写图片描述
Canvas Scaler的ui Scale Mode为world不可改变

唉呀妈呀,这么长,终于码完了~。~回家洗洗睡了。。。发现问题请拍砖

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Unity中的Canvas Scaler是用于调整UI元素在不同分辨率下的大小。它可以自动缩放UI元素以适应屏幕大小,以确保UI在不同分辨率下的显示效果一致。 Canvas Scaler有三种模式:Constant Pixel Size、Scale With Screen Size 和 Constant Physical Size。 - Constant Pixel Size模式下,UI元素的大小不会随着屏幕大小的变化而变化,因此在不同分辨率下可能会出现拉伸或挤压的情况。 - Scale With Screen Size模式下,UI元素的大小会根据屏幕大小进行缩放,以保持相对位置和比例不变。 - Constant Physical Size模式下,UI元素的大小会根据物理尺寸进行缩放,例如在移动设备上,UI元素在不同分辨率下的大小相同,但在不同的物理尺寸设备上可能会有所不同。 在使用Canvas Scaler时,需要注意设置参考分辨率和参考像素密度,以确保UI元素在不同分辨率下的显示效果一致。 ### 回答2: Unity中的Canvas Scaler是一个组件,用于调整Canvas的大小和分辨率,以适应不同的屏幕分辨率和设备比例。 Canvas Scaler有三种模式:Constant Pixel Size(固定像素大小)、Scale With Screen Size(与屏幕大小缩放)和 Constant Physical Size(固定物理大小)。 在Constant Pixel Size模式下,Canvas的大小会保持不变,不管屏幕的分辨率如何,都会使用相同的像素单位。这意味着在不同分辨率的设备上,Canvas看起来的大小可能会不一样,但UI元素的像素数量不会改变。 在Scale With Screen Size模式下,Canvas会根据屏幕的大小进行缩放。可以设置一个参考分辨率,并设置屏幕的分辨率和比例。Canvas元素的大小和位置会相对于参考分辨率进行缩放和调整,以便在不同分辨率的设备上看起来一致。 在Constant Physical Size模式下,Canvas的大小会根据物理单位进行调整,例如英寸或厘米。Canvas会根据屏幕的物理尺寸以及设备的像素密度来调整大小,以确保UI元素在不同设备上以相似的物理尺寸呈现。 通过使用Canvas Scaler,可以轻松地创建适应不同屏幕和设备的UI。根据实际需求选择不同的模式,并设置相应的参数,以确保UI在各种分辨率和设备上都能有良好的表现效果。 ### 回答3: UnityCanvas Scaler是一个非常方便的工具,可以帮助我们在不同的屏幕分辨率下保持UI的一致性和适应性。 首先,Canvas Scaler可以根据屏幕分辨率调整UI元素的大小和位置,以便在不同设备上都能够正确显示。它提供了几种不同的屏幕匹配模式,例如 Constant Physical Size(物理尺寸固定)、Scale With Screen Size(跟随屏幕尺寸缩放)和 Constant Pixel Size(像素尺寸固定),我们可以根据需求选择适合的模式。 其次,Canvas Scaler还可以帮助我们自动调整UI元素的分辨率适应性。在游戏中,不同的屏幕分辨率可能会导致UI元素变形或者显示不全,使用Canvas Scaler可以根据实际情况自动调整,以便在不同的设备上都能够正确呈现。 此外,Canvas Scaler还提供了一些其他的参数和选项,例如Reference Resolution(参考分辨率),这是我们设计UI时所使用的分辨率;Match Width Or Height(宽度或高度匹配),这可以根据屏幕的宽高比例自动调整UI元素;和 Screen Match Mode(屏幕匹配模式),这可以选择是以宽度为基准还是以高度为基准进行UI的缩放。 总之,Canvas Scaler是Unity中一个非常有用的工具,可以帮助我们保持UI的一致性和适应性,使得我们的游戏在不同设备上都能够正确呈现,提升用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值