最近接手了一个新项目,unity版本为2017.2.4,界面搭建用的是NGUI 3.6.2 刚接手,项目的自适应是一个大问题,在看到apk包在安卓上的表现,瞬间感觉项目距离上限还有很遥远的距离。在经过多方面的资源查找,UI修改,最后找到了解决自适应的方法。下面普及一下,以免后来者再误入歧途。
NGUI的自适应,还是要从UIRoot说起,设置如下图
其他的UIPanel下的设置为下图(这里设置的是一张背景图片)
红色框内的设置,为自适应的相对屏幕的距离。
上图为某个界面的组建,相对于背景图的位置
left:相对于左边0
right:相对于右边0
bottom:当前UI的底部相对于背景图顶部为-100
top:相对于顶部0
上面的设置能够满足自适应了,但是在不同屏幕上会出现组建的拉伸。如果出现此类问题,可以创建一个父物体,然后让父物体跟随界面拉伸,子物体不做相对父物体的自适应。
在遇到需要在ScrollView下创建子物体的时候,给子物体下的物体做自适应,子物体上挂载组建UIWidget,创建时,修改UIWidget的width。
在修改子物体比较多的时候,可以直接缩放物体的X,Y轴。比如:上面设置的是640*1138,需要在1080*2244上自适应,在设置之前先获取到UIpanel的width,然后设置X,Y为640/713。
713为1080*2244上获取的UIPanel的宽度,别问我为什么。