2017-09-17 59 views
0

我想在我的2D遊戲,其中有一個面板,其元件排列爲在此圖像中,以建立一個場景: enter image description here如何有單元高度不同的網格佈局組件在Unity

ScrollRect應該動態地添加用戶向InputField提供值後,從Dropdown中選擇一個選項,然後單擊Button。這一切都可以正常工作,但ScrollRect的可視區域與其父面板中的同級垂直大小相同。

發生這種情況是因爲父面板的GridLayoutGroup需要指定子單元尺寸,並且如果我指定的值對於頂部兩個面板有意義,則對於ScrollRect來說太短。在父面板上放置一個ContentSizeFitter沒有幫助(同樣,儘管有Unity警告,但ScrollRect的內容有ContentSizeFitter,因爲沒有一個滾動時不會顯示新添加的行)。

所以我的問題是:

什麼,我需要怎樣做才能讓頂級面板的孩子的垂直尺寸是基於它們的大小,當一個孩子的垂直尺寸會動態變化?

謝謝!

回答

0

這是可能的。將Layout Element組件附加到每個孩子的GameObject。然後,您可以通過修改Layout ElementPreferred WidthHeight變量來動態更改每個子對象的大小。

+0

我試過但它不起作用;孩子們只保留父母的網格佈局組設置的單元格大小。 – Rookatu

+0

佈局元素的功能就是做這件事。你可能做錯了我不知道的事情。 – Programmer

0

對於網格佈局,您無法動態控制單元大小。相反,您可以使用水平/垂直佈局組,您可以在其中找到選項控制子尺寸。正如上面提到ans添加布局元素到子組件,並調整大小

0

@Programmer和@ Salma572答案都是正確的。如果您希望該尺寸爲固定數量或像素,請使用LayoutElement。但是,似乎你可以使用比例(百分比)或其他任何動態。

這是一個恥辱,但你可能需要寫一個腳本。

相關問題