【问题标题】:How to animate UI position for different aspect ratio screens?如何为不同纵横比的屏幕设置 UI 位置动画?
【发布时间】:2019-11-27 20:48:02
【问题描述】:

我知道如何制作 UI 对象的移动动画,但如何使其支持不同纵横比的屏幕?

例如,我在左下角有一个 UI object_1,在右上角有一个 object_2,两者都调整了它相对于屏幕角的位置。我想让 UI 图像从 object_1 移动到 object_2。

问题是object_1和object_2在不同的分辨率下处于不同的位置(甚至根据屏幕比例不同的比例)。那么如何制作支持不同分辨率的运动动画呢?

感谢您的建议!

截图: 1 在 18:9 屏幕上左下方复选框的移动起点。

2 左下复选框在 18:9 屏幕上的移动终点。

3 移动起点,改为16:9屏幕,截图显示手指图像的位置与checkbox的位置不匹配。

4 在 16:9 屏幕上移动结束点,与上述问题相同。

【问题讨论】:

  • @AhmedAli 谢谢,我了解 recttransform 和锚点的工作原理,但是如何制作支持这一点的动画?
  • 动画会支持的!因为你已经设置了pivots
  • 现在我有一个从object_1移动到object_2的动画,它在18:9的屏幕上运行良好。但是,如果我将其更改为 16:9 屏幕,则开始和结束位置将不会正好是 object_1 和 object_2 所在的位置。
  • 是的,这是 UI 的一个主要问题,因为您的图像不符合屏幕分辨率。您必须根据屏幕的分辨率调整图像大小。我并不是说你的动画会像其他分辨率一样,但它会很合适

标签: unity3d


【解决方案1】:

好的,问题解决了。事实证明,动画支持在某些帧处更改锚点。因此,只需打开录制并调整您喜欢的任何内容。

在我的项目中,第一帧我将手指图像的锚点设置为中下点,然后记录它的位置;当开始移动动画时,将其锚点更改为中上点,然后设置目标位置。如果屏幕纵横比发生变化,由于动画也使用了正确的锚点数据和两个复选框,它们会完美匹配。

仅供参考,这是动画窗口的屏幕截图,以帮助您理解。

【讨论】:

    【解决方案2】:

    这可能会有所帮助,
    docs Unity3d site
    这将支持动画。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-18
      • 1970-01-01
      • 2021-07-02
      • 1970-01-01
      • 1970-01-01
      • 2020-04-13
      • 2021-07-09
      相关资源
      最近更新 更多