我覺得我沒有理解Vertical Layout GroupUnity 2020.3.21 中的組件,我希望有人能解釋我缺少的內容。
我有一系列運行時控制的 UI 組件,我希望從上到下垂直顯示。我需要能夠在運行時打開和關閉這些組件,并使父垂直布局組大小自動更新為所有活動子項的高度。這正是垂直布局組應該處理的事情,對吧?
當我構建一個簡單的示例時,我看到垂直布局組正確地將子項定位在垂直串列中。但是,它在測量自己的身高時完全忽略了孩子的大小。這是一個問題,因為我希望能夠在滾動視圖中拋出這個容器——如果高度不準確,那么滾動視圖就不能正常作業。
這是我的演示。我在 VLG 中有一系列孩子,它們都在他們的 RectTransform 中有明確的設定高度。他們都是VLG的直系孩子。他們都沒有使用LayoutElement; 所有高度都在RectTransform. 這是場景層次結構,括號中是每個組件的編譯時 RectTransform 高度。
Canvas (325x812)
GameObject (812)
Vertical Layout Group (100)
Text (45)
Spacer (100)
Text Input (48)
Spacer (20)
Button (48)
這是我的 VLG 設定:

當我運行游戲時,我可以在Scene選項卡中看到每個 UI 物件的輪廓。孩子們清楚地設定了他們的身高。然而,VLG 仍然具有它的靜態編譯時高度,100而不是子高度的總和。
我是否遺漏了垂直布局組的作業原理?我怎樣才能讓這個 VLGHeight在運行時將它的屬性設定為它的活動孩子的實際總高度?
uj5u.com熱心網友回復:
將垂直適合設定為首選大小的 ContentSizeFitter 應該可以解決問題。我根據您的示例使用簡化結構進行了快速測驗,并正確計算了高度(子物件的高度為 100 50 75):

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/340625.html
標籤:统一3d
