UGUI 深入理解CanvasScaler ugui canvas group

CanvasScaler:

这是一个理解起来相当繁琐复杂的一个组件,但又是一个至关重要的组件,不彻底了解它,可以说对UGUI的布局和所谓的“自适应”就没有一个完整的认识。

CanvasScale指的是UI Canvas整体的缩放比例,这个值在Canvas 的RenderMode为Screen Space – Overlay的情况下默认为1,在Canvas 的 Render Mode为 Screen Space –Camera 的情况下则不一定为1,会受到渲染UI的摄像机参数影响(如果为Perspective 相机,会受到 Field OfView影响,如果是Orthographic相机,会受到Size影响)。

CanvasScaler存在的意义:

为了适应不同的分辨率,我们可能会允许适当的UI整体性缩放,外加一些尽可能少的布局微调。这样就能达到一个比较理想的效果。如果没有这个组件,Canvas的Scale默认情况下永远固定不变,那么分辨率变化时,只能单纯依靠锚点信息去调整UI,会对整体布局产生较大的影响,不能够达到“自适应”的目的。

什么是Pixelperfect?

PixelPerfect(完美像素)指的是一个UI素材本身的像素对应屏幕上一个像素的情况,这种情况下UI素材映射到屏幕上时没有任何拉伸和压缩,这种情况下UI显示效果非常清晰完美。

Ui Scale Mode--Scale WithScreen Size

根据屏幕尺寸来调整UI的缩放值

ReferenceResolution:

参考分辨率,即一开始制作时选定的屏幕分辨率,后面的选项参数都是根据它来计算的。

Screen Match Mode—MatchWidth Or Height

Match

Match是一个滑条,拉在最左时是Width ,最右时是Height,中间则是按比例混合。

当处于最左边时,屏幕高度对于UI大小完全没有任何影响,只有宽度会对UI大小产生影响。假设宽度为Reference Resolution宽度的x倍,则UI整体缩放为Reference Resolution状态下的x倍。也就是说只有宽度等于Reference Resolution宽度时,才能做到pixel perfect,否则像素就会有拉伸

当处于最右边时,与上述情况正好相反,决定整体缩放值的是高度,而宽度则没有任何影响

处于中间某处时,对上述两者的影响进行权重加成

Screen MatchMode—Expand

当屏幕分辨率大于参考分辨率时,选择变化较小的一个方向(横向还是纵向),作为放大Canvas Scale的标准,另一方向上的变化则是在整体缩放以后再进行补偿性的变化。此举旨在减少扩大分辨率时由于非等比扩大而对UI整体布局造成影响。适合制作较小标准尺寸,扩充到较大屏幕。

例如:ReferenceResolution为800*600,(假设此时Canvas Scale为(1,1,1))。如果实际分辨率为800*800,那么Canvas Scale还保持为(1,1,1)因为宽度没有发生变化,只是单纯的高度增加了200。所以势必对布局造成一定得影响。1000*600的情况也是一样,Canvas Scale没有变化,只是单纯宽度增加了200。但如果实际分辨率变为1000*800,那么Canvas Scale就变成(1.25,1.25,1.25)。因为宽度是参考分辨率宽度的1.25倍,高度是1.33倍,那么取较小的1.25。这个1.25倍的意义是:整体Canvas渲染放大1.25倍,横向或纵向的变化超过了1.25倍,则靠拉伸Canvas来变化,此时因为这部分变化,可能会对布局产生一些相对较小的影响,例如相对位置、某些元素的长宽比。

Screen MatchMode—Shrink

和Expand类似,但是更适合于缩小的情形。它会在屏幕尺寸缩小时,通过缩小CanvasScale尽量减少由于非等比缩小对布局产生的影响。按照影响较小的一个方向缩小的比例去缩小CanvasScale,然后再通过变形调整另外一个方向。

Ui Scale Mode—ConstantPixel Size

固定的UI缩放值

Scale Factor

直接设定UI的Canvas Scale,例如,设定为2,则Canvas Scale为标准状态下的2倍

[UGUI]深入理解CanvasScaler ugui canvas group

  

爱华网本文地址 » http://www.aihuau.com/a/25101011/71311.html

更多阅读

C++命名空间理解转 _CV cv命名空间的函数

熟练掌握C/C++语言,熟悉Windows开发平台,能熟练运用MFC自主编开发出一些应用程序;熟练掌握SQL语句,对数据库有很好的认识,能熟练使用SQL Server2000软件;熟练掌握JAVA语言,熟悉J2ME对手机软件开发一定的基础;深入理解面向对象的思想,并能熟练

转载 怎么写文献综述WRITINGALITERATUREREVIEW review怎么写

原文地址:怎么写文献综述WRITINGALITERATUREREVIEW初译作品作者:三月四日的鱼怎么写文献综述来源:亚洲技术学院,语言中心翻译:杨慧指导教师:戎可老师什么是文献?尽管听到“literature”这个词时你可能会想到小说和诗歌,但对于科学研究来

《营养午餐》教学设计及教学反思 食物中的营养教学反思

《营养午餐》教学设计教学目标:1、能根据需要灵活运用口算、估算的方法或利用计算器进行计算。2、培养学生从繁杂的数据中获取所需要信息的能力。3、培养学生收集数据、整理数据的能力。4、指导学生学以致用,学会健康的生活方式

2014高考状元笔记 高考状元历史纠错笔记整理 高考状元卖笔记

高考状元历史纠错笔记易错点 1不能深入理解专制主义中央集权制度易错分析:1.君主专制和中央集权君主专制是决策方式,中央集权是一种政治体制,两者的结合构成了我国封建社会政治制度的基本特点。君主专制强调君主个人权力至高无上,国家大

《河中石兽》教学设计和教学反思 河中石兽教学设计

《河中石兽》第二课时教案 教案分析:本文节选自纪昀的《阅微草堂笔记》,故事围绕着“如何才能找到十多年前掉进河中的石兽”展开,僧、讲学家、老河兵分别给出了不同的意见。故事的结局证明了“实践出真知”的道理。教学目标:1、落

声明:《UGUI 深入理解CanvasScaler ugui canvas group》为网友缠绵病塌分享!如侵犯到您的合法权益请联系我们删除