2

我想在 Unity3D 5 UI 中使用从 web 下载的水平图像实现滚动视图,它们具有不同的随机纵横比,但我希望它们是恒定的高度。宽度取决于它们的纵横比,如下所示:

在此处输入图像描述

我尝试使用水平布局组,但图像太少,所以当我希望它们保持恒定高度并拉伸父级宽度时,它们都可以放入组中。所以,就像父母的宽度是主要的,它会影响孩子,但我希望孩子影响父母的总宽度(在添加新的孩子图像时扩展它)。

任何想法如何实现这一目标?谢谢。

4

1 回答 1

4

您需要使用启用水平滚动和禁用垂直滚动的 ScrollView。如下图所示设置您的层次结构:

在此处输入图像描述

Content在名为attach的 GameObject上Horizontal Layout GroupContent Size Fitter具有以下设置:

在此处输入图像描述

然后在所有图像上附加一个Layout Element组件,并在运行时使用图像的纵横比和游戏对象的高度计算宽度,Content并将此宽度分配给Component的Preferred Width属性: 下图中是计算出的图像宽度:Layout Element300

在此处输入图像描述

因此,您作为子对象添加到游戏对象的任何图像Content都会增加其父对象的宽度,并且您将能够水平滚动以查看所有图像。

ps我匆匆写下这个答案。如果不让我知道,希望它对你有意义,我会改进我的答案。

于 2017-06-14T11:06:23.370 回答