Страница 1 из 1

Запутался в Content Size Fitter и Vertical Layout Group :(

СообщениеДобавлено: 02 апр 2017, 17:09
Valentinus
целый день убил на простую задачу, но только в корень запутался.... :( помогите, а?

нужно вывести диалог в канвасе, использую ScrollView в котором создаю фразы отдельными Text`ами.

проблема с обрезанием и выравниванием.

нужно чтобы Text по ширине растягивался равным Content, а по высоте - по количеству текста внутри. (прокрутка будет только по вертикали)

у Text`ов я поставил по горизонтали перенос (Wrap) ; по вертикали Overflow (иначе если ставить Truncate то текст режется, и далее по высоте уже Text не раздвигается).
к Content у ScrollView я добавил Content Size Fitter (где выбрал для высоты Prefffered), а ширину Content установил как у Viewport
и к Content еще добавил Vertical Layout Group :
если в Control Child Size отмечаю только heigh и в Child Force Expand отмечаю width и heigh, то Text остается дефолтной ширины, т.е. не растягивается до границ Content (по вертикали увеличивается чтоб вместить весь текст, с переносом строк),
если ставлю еще галочку Control Child Size на width, то Text раздвигается в одну строку улетая за экран (т.е. Text становится максимально большим, чтоб вместить тест безе переноса).

я никак не могу заставить Text стать по ширине равным Content , а по высоте - сколько нужно для вмещения текста. @-)

в обучайках все красиво - там кидают контролы на ScrollView и ручками ставят им ширину. а у меня Text`ы делаются из префабов, мне нужно чтоб он при внедрении в сцену подстроился под скроллвью.

PS https://docs.unity3d.com/ru/current/Man ... tSize.html читал, не помогло :(

Re: Запутался в Content Size Fitter и Vertical Layout Group :(

СообщениеДобавлено: 02 апр 2017, 21:16
Valentinus
в принципе, я мог бы даже вручную установить нужную ширину Text, но я не соображу - как мне получить ширину родительского Viewport.
я пробую получить rect из его RectTransform, но он возвращает 0 (на этапе Start())

g_obj.GetComponent<Transform> ().parent.GetComponent<RectTransform> ().rect.width возвращает 0
g_obj.GetComponent<Transform> ().parent.parent.GetComponent<RectTransform> ().rect.width возвращает 0

Re: Запутался в Content Size Fitter и Vertical Layout Group :(

СообщениеДобавлено: 02 апр 2017, 22:18
Valentinus
блин, еще одна беда - почему-то перестали удалиться клоны-префабы текста - после останова они остаются в сцене, и так копятся после каждого запуска...
не могу понять, что я случайно мог нажать??!!! как это отключить???

Re: Запутался в Content Size Fitter и Vertical Layout Group :(

СообщениеДобавлено: 02 апр 2017, 22:59
Valentinus
кажется , победил.

для тех кто тоже будет это делать, надо:

1) у Text включить по горизонтали Wrap и по вертикали Overflow
2) у Content добавить Content Size Fitter и Vertical Layout Group
3) у Content ширину установить по ширине Veiwport , в настройках Content Size Fitter выбрать для вертикали Prefffered, а для горизонтали Unconstrained
4) в Child Force Expand отметить только width
5) в Control Child Size отметить width и heigh