Unity UGUI 自适应

Unity UGUI 自适应

背景

(1)手机需要再竖屏与横屏之间切换,这样适应竖屏的UI元素的位置,未必适应横屏。

(2)即使都采用横屏模式,手机的横纵比不同,有的是2140*1080,有的是2400*1080,有的是1920*1080,等等…

(3)即使都采用相同横纵比,但屏幕分辨率不同,例如:1920*1080与2560*1440

设置元素自适应

1、默认情况下,元素的锚点在中心位置,修改分辨率后,按钮为了保持恒定的偏移,会出现超出屏幕的情况。

请添加图片描述

2、把锚点都设置在各自对应的角上,如图,

但是这样会出现两个问题,元素相对于屏幕变大了。两个元素有可能叠加在一起。

请添加图片描述

3、大小适应分辨率的变化

解决方法,按钮元素的大小跟随屏幕的大小变化。

使用Canvas Scaler组件

在这里插入图片描述

UI Scale Mode设置为scale with Screen Size。

设置X,Y。此处标识,元素的初始参考的大小为1400 2560。后面分辨率发生变化,元素的缩放都是依据这个初始分辨率大小。

4、再次适应横纵比的变化

问题:当竖屏变为横屏时,按钮大小会发生变化。

当竖屏变为横屏时,它会将实际分辨率宽度CanvasScaler参考分辨率宽度进行比较,并将结果作为缩放因子使用。由于目前的景物分辨率为960 x 640,宽度是竖屏画的640 x 960的1.5倍,所以布局被放大了1.5倍。

该组件具有一个名为Match的值,该值可以是0(宽度)、1(高度)或介于两者之间的值。默认情况下,它被设置为0,它将当前屏幕宽度与描述的画布Scaler宽度进行比较。

将值设置为0.5

W=当前宽度/参考宽度=3/2

H=当前高度/参考高度=2/3

W*H=1,意味着按钮保持其原来大小。

如果设置为其它值。

  • 2 ^ lerp( log(wx, 2), log(hx, 2) )

    • 这类似于再宽度比和高度比之间插值,但又不是线性插值
关于图片的像素设置
 UI大小 = 原图大小(Pixels) / (Pixels Per Unit / Reference Pixels Per Unit)

Sprite

Pixels Per Unit
设置完成后,注意点一下Image组件得SetNativeSize 重新计算一下。

在这里插入图片描述在这里插入图片描述

参考文章

https://blog.csdn.net/l783929897/article/details/118892962
https://zhuanlan.zhihu.com/p/469694665

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UnityGxGameLab+

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值