问题
在一次开发手机游戏的过程中遇到屏幕显示问题:因为初始设置的参数是2160×1080 Portrait,显示没有什么问题
但是有些手机的参数,例如1920×1080 Protrait,显示就出现问题
接下来总结解决方法:
①先对位置明确的物体(在屏幕上边,在屏幕正中间等)使用锚点,例如摩天轮,可以把锚点设为如下:这样屏幕缩小还是放大,摩天轮依旧显示完全,位置相对于上边缘。
②将Canvas的Screen Match Mode设置为Match Width Or Height,而通常竖屏是Match Hight,而横屏是Match Width,所以对于这个例子就要Match Height
③不同Panel中的组件是固定在其所在的Panel中,这样将无法固定在画布中,因此需要将每个Panel铺满整个画布
④若在界面里放了张背景图,这个图片Match Height,且用锚点铺满了整个画布。这个时候假如屏幕的高度发生了变化,若屏幕Match Height,则高度不变,画布会自动对宽度进行缩放,但这时背景图片已经被锚定铺满了整个画布,因此背景图片会出现拉伸或压缩。因此对于背景图,不要让它锚定并铺满画布,而是让它使用默认的铺展方式,即居中
效果
这样就基本解决了屏幕自适应。其他屏幕也是基本没有多大显示问题
有一些文章写得很好,可以参考一下
比较详细的介绍屏幕自适应:https://blog.csdn.net/qq_15020543/article/details/82595179
RectTransform详解:https://www.jianshu.com/p/dbefa746e50d