Unity3d UGUI 实现底部UI自适应的功能(含工程)
前言
UI的自适应常常在项目中使用到,特别手游中,不同比例屏幕的手机,如果能考一套UI自适应显示,能省去不少的开发工作量。这里只是浅浅的讨论一下,这种居中靠底部的UI我们怎么实现自适应。
效果
自由分辨率下,自由拖动的效果:
分辨率1效果:
分辨率2效果:
分辨率3效果:
实现
如下图的UI:
我们首先要思考各个部分的分布,红色部分是一个固定图片/内容显示,中间黄色部分是一个向上滚动的列表,右侧绿色部分是一个上滚动的图片列表;我们暂定的适配方式是高度固定,宽度动态适配,这三部分中能动态的就是绿色部分,可以动态展示图片的列数。
UI搭建
搭建的UI节点:
这里不做多的细节描述,除了图片文字组件,就用到了ScrollRect 、 Vertical Layout Group和 Grid Layout Group等组件。
UI自适应
Canvas Scaler的设置:
这里进行了高度匹配的设置,宽度则会进行动态宽度,如果对该组件不了解的,可以参考:
https://blog.csdn.net/qq_33789001/article/details/117781577 ,在此文中我已经进行了详细的测试和展示了。
根节点,以靠底拉伸的形式:
背景图全拉伸:
红黄框上下居中,居左:
右侧的图片列表(根节点)全拉伸:
图片列表使用置顶拉伸:
同时设置Content Size Fitter 高度适配, Grid Layout Group 的 Constraint 为Flexible。