【发布时间】:2019-06-25 23:34:15
【问题描述】:
我正在使用 c# 统一制作一个简单的游戏,但它对所有移动屏幕分辨率都没有响应。我该怎么做才能使其对所有移动分辨率做出响应。尽管对于画布我使用了画布标量组件,但对于不在画布中的背景图像,我可以做什么,如何使其覆盖整个屏幕。
【问题讨论】:
我正在使用 c# 统一制作一个简单的游戏,但它对所有移动屏幕分辨率都没有响应。我该怎么做才能使其对所有移动分辨率做出响应。尽管对于画布我使用了画布标量组件,但对于不在画布中的背景图像,我可以做什么,如何使其覆盖整个屏幕。
【问题讨论】:
Canvas 应该附加一个 CanvasScaler 组件,如果您是从菜单创建的,或者它是通过向场景添加另一个 UI 元素自动创建的。如果没有,只需添加组件即可。
然后,选择您希望支持的最低分辨率,然后为它构建您的 UI。提醒:如果您想使用百分比,请使用锚点和枢轴,而不是像素大小。如果您想要在组件之间进行划分和/或固定纵横比,请使用Horizontal Layout、Vertical Layout、Layout Element、Aspect Ratio Fitter 和不可见的Container 面板的组合。
在你的UI结构完成后,你可以调整CanvasScaler的属性来达到你想要的效果。您可能需要Scale With Screen Size(使用您的参考分辨率)、Match Width Or Height 和完整的0(宽度匹配)、0.5(W 和 H 均等匹配)或完整的 1(匹配按高度),因为这适用于大多数游戏,但这取决于您的目标方向(纵向或横向)和您的游戏。
【讨论】:
您也可以使用锚点,正如它所说: Basic Layout 和 Designing UI for Multiple Resolutions
【讨论】:
Screen.width 和 Screen.height 是您唯一需要的统一特定方法。
根据您的屏幕尺寸将高度、宽度和位置信息传递给您的对象。 学习gui的困难部分。 试试看并通知我们,以便我得到确认
【讨论】: