我想在 Unity3D 5 UI 中使用从 web 下载的水平图像实现滚动视图,它们具有不同的随机纵横比,但我希望它们是恒定的高度。宽度取决于它们的纵横比,如下所示:
我尝试使用水平布局组,但图像太少,所以当我希望它们保持恒定高度并拉伸父级宽度时,它们都可以放入组中。所以,就像父母的宽度是主要的,它会影响孩子,但我希望孩子影响父母的总宽度(在添加新的孩子图像时扩展它)。
任何想法如何实现这一目标?谢谢。
我想在 Unity3D 5 UI 中使用从 web 下载的水平图像实现滚动视图,它们具有不同的随机纵横比,但我希望它们是恒定的高度。宽度取决于它们的纵横比,如下所示:
我尝试使用水平布局组,但图像太少,所以当我希望它们保持恒定高度并拉伸父级宽度时,它们都可以放入组中。所以,就像父母的宽度是主要的,它会影响孩子,但我希望孩子影响父母的总宽度(在添加新的孩子图像时扩展它)。
任何想法如何实现这一目标?谢谢。
您需要使用启用水平滚动和禁用垂直滚动的 ScrollView。如下图所示设置您的层次结构:
Content
在名为attach的 GameObject上Horizontal Layout Group
,Content Size Fitter
具有以下设置:
然后在所有图像上附加一个Layout Element
组件,并在运行时使用图像的纵横比和游戏对象的高度计算宽度,Content
并将此宽度分配给Component的Preferred Width
属性: 下图中是计算出的图像宽度:Layout Element
300
因此,您作为子对象添加到游戏对象的任何图像Content
都会增加其父对象的宽度,并且您将能够水平滚动以查看所有图像。
ps我匆匆写下这个答案。如果不让我知道,希望它对你有意义,我会改进我的答案。