首页 > 解决方案 > Unity UI:在显示器上拉伸图像

问题描述

我有一个位于 Canvas 元素中的图像(游戏战略地图),我希望它延伸到显示器的整个宽度或长度(在不同的设备上可能具有不同的尺寸或纵横比),以便图像被保留,同时所有图像都可见。

无论我设置什么,图像要么太小,要么太大而无法放入显示器。

如果我理解正确,两组设置很重要:(1)图像的位置,它的枢轴,它的锚点,它的最小和最大 x 和 y。(2)父canvas scaler UI缩放模式(我可能需要“随屏幕大小缩放”),它的x和y滑动缩放。我忽略了什么吗?因为似乎没有任何组合对我有用。

第二个问题:我需要在最大化模式下玩它才能测试它吗?或者它是否应该在非最大化模式下工作?

标签: unity3d

解决方案


以下是从头开始实现您想要的目标的步骤:

  1. 为简单起见,将游戏视图的分辨率设置为您正在开发的主要分辨率。现在我们将使用 1920x1080。
  2. 将画布添加到场景中。
  3. 配置画布设置:
    • 渲染模式:屏幕空间叠加
    • UI缩放模式:随屏幕大小缩放
    • 屏幕匹配模式:展开
    • 参考分辨率:1920x1080(与游戏视图相同)。
  4. 添加图像作为画布的子对象,并将所需的精灵添加到图像中。
  5. 拖动图像以您希望的方式显示并将其锚定到中心。

此时,您应该能够在游戏视图中切换到其他分辨率(例如,iPad 为 2048x1536,Note 8 为 2960x1440),并且图像应该在不影响其纵横比的情况下进行拉伸。根据您想要做什么,您可能需要使用屏幕匹配模式。

注意:事后更改画布参考分辨率可能需要重新配置或缩放 UI。


推荐阅读