当前位置:   article > 正文

Unity组件——Canvas作用及常见设置_canvas必须是screenspace-camera才显示

canvas必须是screenspace-camera才显示

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


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,即只和高度进行适配

四.总结

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/111120?site
推荐阅读
相关标签
  

闽ICP备14008679号