I have some buttons in my grid, I need to change each cell size (the background of button) to match the text on each button…
I tried getting the component and doing this GridLayout.cellSize = Vector2.one * Mathf.RoundToInt(Number);
But this will just change to the same size for all of the cells, which I don’t want. And text is different on some of the buttons, so it looks rather silly.
Hi, (sry for my English) its late but this is how i manage to do the exact same thing but with text (its the same idea for button i guess). You need to use Vertical and Horizontal layout instead of Grid.
A GameObject parent with a VerticalLayoutGroup on it with “control child size” enabled (width and heigh). Put the following script on it.
The rowPrefab is an EmptyGameObject with “HorizontalLayoutGroup” on it with “control child size” enabled (width and heigh) and “child force expend” enabled (only width).
the script
public GameObject rowPrefab;
public Button butPrefab;
for (int i = 0; i < nbButton; i++)
{
if (i == 0 || (currentRowLength + newButton.Length > _maxRowLength)) // if too many char on the current row, create a new one.
{
GameObject newRow = Instantiate(rowPrefab, transform, false);
currentRow = newRow;
currentRowLength = 0;
}
newButton = (Button)Instantiate(butPrefab, currentRow.transform, false); // new button
newButton.text = textButton; // change button's text
currentRowLength += newtext.text.Length;