Unity_Canvas_Canvas Scaler画布缩放器。

1.Canvas Scaler是什么?

Canvas Scaler是控制Canvas(画布)内所有UI元素整体缩放和尺寸的组件

2. 解决什么问题?

他会根据屏幕分辨率不同,显示的UI的大小不同。简而言之就是不会让按钮在大屏幕显示太小,让在小屏幕上显示太大。Canvas Scaler 就是为了自动处理这些缩放问题,实现UI的自适应布局。

3.Canvas Scaler的UI Scaler Mode(UI缩放模式)

UI Scaler Mode 有三种主要模式:

  1. Constant Pixel Size (恒定像素)
  • 工作方式:UI元素的大小将保持其固定的像素值。一个100像素宽的按钮在任何分辨率下都是100像素宽。
  • 优点:简单直接,所见即所得。
  • 缺点:在不同分辨率的屏幕上,UI的物理尺寸会发生巨大变化。在高分屏上UI会变小,在低分屏上UI会变大。
  • 适用场景:很少用于需要适配多分辨率的游戏或应用。可能适用于一些像素风格的游戏或开发阶段的快速原型设计。
  1. Scale With Screen Size (随屏幕尺寸缩放) 最常用
    Reference Resolution (参考分辨率):你设计UI时所依据的分辨率,比如 1920 x 1080。Unity会计算当前屏幕分辨率与这个参考分辨率的比例,然后对整个Canvas进行缩放。
    Screen Match Mode (屏幕匹配模式):当实际屏幕的宽高比与参考分辨率的宽高比不一致时,决定如何进行缩放。
    Match Width Or Height (匹配宽度或高度):这是最灵活、最常用的选项。它提供一个滑块:
    0 (Match Width):UI的宽度将始终与屏幕宽度保持一个固定的比例。当屏幕变宽或变窄时,UI的高度会相应地缩放。适合竖屏游戏或对UI宽度要求严格的布局。
    1 (Match Height):UI的高度将始终与屏幕高度保持一个固定的比例。当屏幕变高或变矮时,UI的宽度会相应地缩放。适合横屏游戏或对UI高度要求严格的布局。
    0.5 (中间值):在匹配宽度和匹配高度之间取一个平衡。这是最常用的设置,因为它能很好地兼顾不同宽高比的屏幕,防止UI在某个方向上被过度拉伸或压缩。
    Expand (展开):保证整个UI在屏幕内完全可见,可能会在屏幕的某个方向上留下空白(黑边)。
    Shrink (收缩):保证UI能完全填满屏幕,但可能会导致UI的一部分被裁剪掉(超出屏幕)。
  1. Constant Physical Size(恒定物理大小)
    工作方式:尝试让UI元素在任何屏幕上都保持相同的物理尺寸(例如,英寸或厘米)。它通过设备的DPI(每英寸点数)来实现。
    优点:可以确保一个按钮在任何手机上看起来都差不多大,方便用户点击。
    缺点:严重依赖设备报告的DPI是否准确,而很多设备的DPI信息并不精确,可能导致缩放结果不符合预期。
    适用场景:需要精确控制UI物理大小的应用,例如测量工具或需要模拟真实世界尺寸的应用。
相关推荐
jtymyxmz20 小时前
《Unity Shader》6.4.3 半兰伯特模型
unity·游戏引擎
AA陈超20 小时前
ASC学习笔记0001:处理目标选择系统中当Actor拒绝目标确认时的调用
c++·笔记·学习·游戏·ue5·游戏引擎·虚幻
我的golang之路果然有问题1 天前
mac配置 unity+vscode的坑
开发语言·笔记·vscode·macos·unity·游戏引擎
于小汐在咯1 天前
【虚拟现实技术】在Unity里创建一个简单的AR项目
unity·ar·vr
HahaGiver6661 天前
Unity Shader Graph 3D 实例 - 一个简单的红外线扫描全身效果
3d·unity·游戏引擎
o***Z4481 天前
免费的WebAssembly游戏引擎,AssemblyScript
游戏引擎·wasm
雪下的新火2 天前
Blender:法线图&黑白图
游戏·unity·游戏引擎·blender·笔记分享
HahaGiver6662 天前
从0到1做一个“字母拼词”Unity小游戏(含源码/GIF)- 实现多单词顺序通关进度逻辑
unity·游戏引擎·游戏程序
Dr.勿忘2 天前
Unity一分钟思路---UI任务条:宝箱位置如何准确卡在百分比位置上
ui·unity·游戏程序·屏幕适配
weixin_424294672 天前
Unity 实现 ScrollBar 值变化控制 Panel 位置的方法
unity·游戏引擎