Unity Canvas

一般而言画布有三种渲染模式

一:画布渲染

1.Screen Space - Overlay即叠加模式

这种模式下画布自动填充屏幕,默认在画面最前方遮盖其他画面,为通常选用模式

 

 

2. Screen Space - Camera摄像机模式

同样画布自动填充整个屏幕,但是可以通过调整物体在摄像机前的位置调整是否遮盖画布

但是要采用这个模式需要在选用之后在渲染相机中选择需要的相机

3.World Space 世界坐标模式

大小根据设置的rect,在相机中与其他的物体没有其他区别,画布根据其世界位置显示

 效果如下

 注意:

1和2两个模式下画布的最大大小和游戏界面中的适配有关,即下图二的位置

 

 

 二:屏幕像素

 

1.Constant Pixel Size

恒定像素大小

无论屏幕大小如何,都使 UI 元素保持相同的像素大小

Scale Factor 缩放系数:按此系数缩放画布中的所有 UI 元素

Reference Pixels Per Unit 每单位参考像素:Unity中一个单位对应的像素数

 但是这个模式有一个问题就是:

我们在不同设备上适配的时候固定的像素会导致适配有问题

2.Scale With Screen Size

随屏幕尺寸缩放

 所以一般而言我们用的是这个模式

 屏幕越大,UI 元素越大,UI 随着屏幕尺寸而进行缩放

 

 

Reference Resolution 参考分辨率: 布局设计的分辨率。如果屏幕分辨率较大,则 UI 将按比例放大,如果屏幕分辨率较小,则 UI 将按比例缩小。

Screen Match Mode 屏幕匹配模式Match Width or Height: 使用宽度、高度作为参考,或介于两者之间的值来缩放画布区域.

Expand:水平或垂直扩展画布区域,因此画布的大小永远不会小于参考值.

Shrink:水平或垂直裁剪画布区域,因此画布的大小永远不会大于参考值。

Match :确定缩放是使用宽度或高度作为参考,还是使用两者的混合。

Reference Pixels Per Unit:每Unity单位参考像素

3.Constant Physical Size 恒定物理尺寸

没用过的模式

即无论屏幕大小和分辨率如何,都使 UI 元素保持相同的物理大小(屏幕上的实际物理尺寸)。

三:Canvas Group

一般用作统一控制组件下的子类对象

只有四个属性

Alpha:透明度

Interactable:是否可交互,当否时拒绝输入

Blocks Raycasts:阻挡射线:是否能被 Graphic Raycaster 射出的射线所碰撞(选中状态为响应碰撞)。注意,这个不适用于Physics.Raycast,即物理射线无法和UI元素互动。,鼠标点击也不在响应

 Ignore Parent Group:忽略父类的该组件

即我们在父类对象上加上阻挡射线

子类panel:

按钮依旧可以被点击

四:Render Order渲染顺序

在UGUI中,渲染顺序是按照Hierarchy 中的顺序渲染的

即后面的遮盖前面的

子类遮盖父类

这里可以参考前面内容的血条制作用mask遮盖血条达到血条减少的效果

或者说我们可以使用sorting layer来控制渲染顺序

例如示例,我们较靠后的按钮会遮盖前面的按钮,靠后的按钮会遮盖前面的字体

 

### 回答1: Unity中的Canvas Scaler是用于调整UI元素在不同分辨率下的大小。它可以自动缩放UI元素以适应屏幕大小,以确保UI在不同分辨率下的显示效果一致。 Canvas Scaler有三种模式:Constant Pixel Size、Scale With Screen SizeConstant 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的一致性和适应性,使得我们的游戏在不同设备上都能够正确呈现,提升用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值