Unity屏幕适配

​​​

  • Unity屏幕适配_第1张图片在适配之前,我们可以看到canvas是基于720x1280的分辨率 以宽度为基准来做适配的。Unity屏幕适配_第2张图片

    在这个界面中,我们可以看到界面分为两部分,上面是视频,下面是UI界面,由于视频不能被拉伸,也不能只显示部分视频,所以在视频这里需要计算视频的宽高。

    Unity屏幕适配_第3张图片

    标准尺寸的视频比例是720x540,以宽为基准,所以需要计算视频的高度,通过上面获取屏幕的宽高来计算出视频的高度,以及下面UI的高度。

    现在我们解决了视频的适配,接下来解决下部分文字和按钮适配。

    我们通常都是使用锚点来设置相对位置,然而我们这个界面比较特殊,因为视频高度是变化的,是计算出来的,导致我们下面的UI高度无法确定,为了避免界面太宽,导致文字超出UI界面,所以在这里使用了锚框,然后将节点全部挂在下面背景图上。

    Unity屏幕适配_第4张图片

    但是这样又会导致一个问题,我们的⭕️圆形和钻石,因为限定在锚框内,导致在其他分辨率下会被拉伸,所以对每一部分,我们在锚框内对每个gameobject使用锚点来控制相对锚框的位置。但是问题来了,像最下面的button按钮,由于在锚框内被限定了,锚框在不同分辨率下会被拉伸,就导致按钮看起来被拉伸了。

    就像算法中总要权衡时间和空间一样,产品毕竟面向用户,最终目的是为了充值,所以下面的panel优先级权衡之后要比视频播放要高,所以优先适配下部分显示的界面。

    Unity屏幕适配_第5张图片

    由于我们是基于canvas的,所以现在就好解决了,将锚点设在最下方中间,下面界面width基于720,高度按照美术给的比例计算出来,固定即可。

    Unity屏幕适配_第6张图片

    视频锚点我们就基于整个屏幕的高度,根据下面ui算出距离底的高度即可。

    最后要做的就是剪裁视频(如果需要剪裁,我们只想展示中间文字部分),所以通过视频第三方插件AVProVideo就可以做到。

    ⚠️注意:由于zeplin设计的尺寸不是按照unity我们canvas的基准来的,所以还要计算每个位置相对锚点和锚框的值。

图片地址  

图片描述 

图片尺寸  ×  

 

你可能感兴趣的:(Unity)