我是Unity新手,并且遇到了这个“问题”。
我正在尝试制作一个始终以人像模式运行的简单2D手机游戏(目前为Android),但是在所有不同的屏幕尺寸下我都无法获得相同的结果。
问题是,当我尝试在所有不同的屏幕尺寸上均等地缩放屏幕时,但是我得到的是上下左右的背景截止(我知道这与{{ 1}}),当我尝试更改屏幕尺寸时。
所以我在Canvas Scaler中使用的是:Match Width Or Height
,参考分辨率为Scale With Screen Size
,背景图像尺寸为1080x1920。
当我尝试调整为更大的屏幕分辨率(例如1080 x 2160)时:
使用X:1080 Y:1920
截断背景
使用Shrink
会出现“黑条”。
将Expand
与Match Width Or Height
一起使用,会出现“黑条”或Match: 1
,背景在两侧均被截断。
或者在调整为较小的比例(3:4)时,也会在两侧出现黑条或背景截止。
所有16:9(576x1024、720x1280、1080x1920、1440x2560等)似乎都是正确的。
所以我的问题是,我能以哪种方式支持所有不同的移动屏幕尺寸,包括所有不同的宽高比,而又不会背景截止或侧面出现黑条?
谢谢。
答案 0 :(得分:1)
由于使用aspect ratio fitter
,图像试图保持其宽高比,导致图像出现黑条/切掉。
它在576x1024、720x1280、1440x2560等上可以正常工作,因为宽高比与原始图像(或画布,即1080x1920)相同,长宽比为9:16。
如果您不希望出现黑条或图像的一部分被切断,则需要将图像拉伸/裁剪为新的宽高比(例如,如果要1080x2160,则为1:2的宽高比)< / p>
要执行此操作,您需要删除宽高比调整器,并确保在图像组件上选中preserve aspect
。然后使图像始终充满画布/屏幕尺寸。例如,将GameObject background
作为画布的子元素,将image
组件添加到background
并将变换的width
和height
设置为与Screen.currentResolution
(来自Screen类)
但是,这会将图像拉伸到不适合宽高比的方向(如果原始图像为9:16(1080x1920),并且您希望它显示2:1(2160x1920),它将拉伸为尺寸是x轴尺寸的两倍,因此会产生扭曲的图片,并且大部分都是难看的图片)。为了解决这个问题,您可能需要为非标准的宽高比制作单独的图像,或者使图像在拉伸时看起来不会变差。
答案 1 :(得分:1)