Горизонтальная прокрутка с постоянной высотой изображений в Unity3D UI - Как?
Я хочу реализовать scrollview в Unity3D 5 UI с горизонтальными изображениями, загруженными из Интернета, они имеют разные случайные пропорции, но я хочу, чтобы они были постоянной высоты. И ширина должна соответствовать их пропорциям, вот так:
Я попытался использовать Горизонтальную группу макетов, но изображения становятся слишком маленькими, поэтому все они могут поместиться в группе, когда я хочу, чтобы они были постоянной высоты и растягивали ширину родительского элемента. Так что, вроде, родительский виджет является первичным и влияет на детей, но я хочу, чтобы дети влияли на общую ширину родителя (расширяйте его при добавлении новых дочерних изображений).
Есть идеи как этого добиться? Благодарю.
1 ответ
Вам необходимо использовать ScrollView с включенной горизонтальной прокруткой и отключенной вертикальной прокруткой. Настройте иерархию, как показано на рисунке ниже:
На GameObject назван Content
прикреплять Horizontal Layout Group
а также Content Size Fitter
со следующими настройками:
Затем на всех ваших изображениях прикрепите Layout Element
компонента и во время выполнения вычислите ширину, используя соотношение сторон изображения и высоту к Content
gameobject и назначьте эту ширину Preferred Width
собственностью Layout Element
Компонент: на следующем изображении 300
рассчитанная ширина для изображения:
В результате любые изображения, которые вы добавляете в качестве дочерних к Content
Gameobject увеличит ширину своих родителей, а также вы сможете прокручивать по горизонтали, чтобы просмотреть все изображения.
PS Я написал этот ответ в спешке. Надеюсь, это будет иметь смысл для вас, если вы не дадите мне знать, и я улучшу свой ответ.