Unity组件——Canvas作用及常见设置

声明:本文为个人笔记,用于学习研究使用非商用,内容为个人研究及综合整理所得,若有违规,请联系,违规必改。


Canvas作用及常见设置



一.开发环境

unity无限制
VS无限制


二.问题描述

Canvas的作用及常见设置.


三.详情

1. canvas下的三种渲染模式

1.1 Screen Space-Overlay 覆盖模式

画布会填满整个屏幕空间,并将画布下面的所有的UI元素置于屏幕的最上层,或者说画布的画面永远“覆盖”其他普通的3D画面,如果屏幕尺寸被改变,画布将自动改变尺寸来匹配屏幕

1.2 Screen Space-Camera 摄影机模式

布也是填满整个屏幕空间,如果屏幕尺寸改变,画布也会自动改变尺寸来匹配屏幕。所不同的是,在该模式下,画布会被放置到摄影机前方。在这种渲染模式下,画布看起来 绘制在一个与摄影机固定距离的平面上。

1.3 World Space 世界控件模式

在此模式下,画布被视为与场景中其他普通游戏对象性质相同的类似于一张面片(Plane)的游戏物体。画布的尺寸可以通过RectTransform设置,所有的UI元素可能位于普通3D物体的前面或者后面显示。当UI为场景的一部分时,   可以使用这个模式。

2. 常见问题

2.1 什么是屏幕自适应

  • 随着分辨率的调节,画布的宽度和高度也被自动地调节了
  • 保持相对位置不变。
  • 保持宽高比例不变。
  • 通过设置UI的描点来设置UI的相对位置

2. 2 Canvas Scaler组件:

  • 以通过设置Canvas下的Canvas Scaler来设置UI的缩放比例(Canvas下的Canvas是用来处理UI遮挡关系的)

  • 当UIScaleMode为Constant Pixel Size时,UI在任何分辨率下都不会进行缩放拉伸,只有通过改变Scale Factor才会进行缩拉,因此不推荐使用该模式(而这种模式的优点就是你可以通过写自适应算法来改变Scale Factor的值,代替unity的自适应算法)

  • 当UIScaleMode为Scale With Screen Size时,相当于使用unity的自适应算法,此时unity会根据屏幕分辨率自动调节Scale Factor的值。在做自适应时,一般要先选择一种比较主流的分辨率(即比较多的机型都采用这种分辨率)进行UI的设计,例如采用1920*1080,在这里就是设置Reference Resolution的值了。

2.3 一般来说,比较不错的设置就是:

  • Canvas Scaler 选择 Scale With Screen Size
  • Screen Match Mode 选择 Match Width Or Height,比例设为1,即只和高度进行适配

四.总结

保持饥饿,保持愚蠢.
这世界唯一能够相信的就是你付出的努力和你走过的路.

猜你喜欢

转载自blog.csdn.net/weixin_45532761/article/details/128783278