【问题标题】:How to stretch something in Unity without losing the aspect ratio?如何在 Unity 中拉伸某些东西而不丢失纵横比?
【发布时间】:2018-03-29 18:30:53
【问题描述】:

我正在 Unity 上制作游戏,这是我的问题:
因此,在 UI 中,当我将对象(如标题)的 Rect Transform 设置为拉伸时,当我更改屏幕尺寸时,它会丢失纵横比。但是当我什么都不放时,它在我的手机屏幕上显示的太少了。我该怎么做才能不丢失纵横比但仍会根据屏幕进行拉伸?

【问题讨论】:

    标签: c# android user-interface unity3d


    【解决方案1】:

    我认为您所追求的是Aspect Ratio Fitter 组件。

    如果您尝试拉伸宽度以适应,那么您将使用该组件并将 Aspect Mode 设置为 Width Controls Height。不过,您需要计算出要保留的纵横比(宽度/高度)。

    还有一些其他方面模式可能也值得一看,具体取决于您需要它如何工作 - Fit in Parent 是您可以用来设置所需大小的模式与父“拉伸”元素的关系,但保留方面。

    【讨论】:

    • 嗨,这适用于某些事情,谢谢。但是我该怎么做才能做文本或按钮中的文本等?
    • 另外,有没有办法改变它们之间的距离?因为当我把屏幕变大时,它们只是互相穿过。此外,当我将其缩小时,它们会消失,因为宽度变为负数。
    • @Flash 在回答您的第一个问题时,最简单的选择是为按钮使用图像(包括文本),确保分辨率足以适应调整大小。其次,我会考虑将它们作为另一个 GameObject(使用 Rect 变换)的父级,并在其中相应地锚定它们以确保它们正确缩放。
    • Content Size Fitter 是您可以尝试的另一种选择。
    【解决方案2】:

    您可以对图像使用保留纵横比。对于文本,您可以在检查器中使用 Best Fit 选项(也可以根据需要调整最大尺寸)。

    【讨论】:

      【解决方案3】:

      使画布 UI 缩放模式以缩放宽度屏幕大小, 保持参考分辨率为宽度*高度..建议保持高度宽度和高度,使其适合屏幕尺寸中心,如果可能,将面板作为父级并在其中创建所有游戏对象,将布局元素最小设置为最大宽度和高度

      【讨论】:

      • 哈哈,这是一个很老的问题,感谢您的回答。我找到了解决方案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-02
      • 1970-01-01
      • 2013-04-17
      • 1970-01-01
      • 2013-07-07
      • 2011-10-08
      • 1970-01-01
      相关资源
      最近更新 更多