我正在使用 c# 统一制作一个简单的游戏,但它无法响应所有移动屏幕分辨率。我该怎么做才能使其响应所有移动分辨率。虽然对于画布,我使用了画布标量组件,但对于不在画布中的背景图像我该怎么办,如何使其覆盖整个屏幕。
如果您是从菜单创建的,或者是通过向场景添加另一个 UI 元素而自动创建的,则应该Canvas附加一个组件。CanvasScaler如果没有,只需添加该组件即可。
之后,选择您希望支持的最低分辨率,然后为其构建 UI。提醒:如果您想使用百分比,请使用锚点和轴,而不是像素大小。如果您希望在组件之间进行划分和/或固定宽高比,请使用Horizontal Layout、Vertical Layout、Layout Element和Aspect Ratio Fitter不可见Container面板的组合。
当你的UI结构完成后,你可以调整其属性CanvasScaler来达到你想要的效果。您可能需要Scale With Screen Size(使用您的参考分辨率)、Match Width Or Height完整0(按宽度匹配)、0.5(按宽度和高度均等匹配)或完整1(按高度匹配),因为这适用于大多数游戏,但它取决于您的目标方向(纵向或横向)和您的游戏。