[英]Unity Grid Layout Group with dynamic cells
您需要使用腳本手動更改它,有兩種方法。
數字 1 的示例:
Vector2 baseSize = new Vector2(800,600); // Base size of the screen
Vector2 baseCellSize; // In editor Cell Size for GridLayoutComponent
Vector2 baseCellSpacing; // In editor Cell Spacing for GridLayoutComponent
GridLayoutGroup layoutGroup; //Component
void Start()
{
layoutGroup = GetComponent<GridLayoutGroup>();
baseCellSize = layoutGroup.cellSize;
baseCellSpacing = layoutGroup.spacing;
}
void Update()
{
Vector2 screenSize = new Vector2(Screen.width, Screen.height); // Current screen size
layoutGroup.cellSize = (screenSize / baseSize) * baseCellSize;
layoutGroup.spacing = (screenSize / baseSize) * baseCellSpacing;
}
請注意,這不會保持縮放正確,項目可能會被拉伸。 為此,您需要承諾在寬度或高度上進行縮放。 然后你會像這樣創建screenSize
變量Vector2 screenSize = new Vector2(Screen.width, Screen.width);
注意兩個字段中的 Screen.width
編輯:您可能還想將兩個軸的內容大小擬合器設置為不受約束
canvas 是否設置為隨屏幕尺寸縮放? 否則可能是內容 object 中的錨點有問題。嘗試將其更改為拉伸。 我將它們放在一個面板中,該面板設置為在垂直和水平方向上都可以拉伸,並且它會在更改分辨率時進行調整
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.