/// <summary> /// Iterate through the provided levels and populate the grid layout /// </summary> /// <param name="levels"></param> public void UpdateLevelList(ScenarioController.LevelObject[] levels) { for (var i = 0; i < levels.Length; i++) { var levelItem = UnityEngine.Object.Instantiate(_itemPrefab, _gridLayout.transform, false); levelItem.GetComponent <LevelItemBehaviour>().SetupItem(levels[i].Stars, Localization.GetAndFormat("LINE", true, levels[i].Id)); var index = i; levelItem.GetComponent <Button>().onClick.AddListener(() => CommandQueue.AddCommand(new SetLevelCommand(levels[index].Id))); } var contentView = _gridLayout.Parent().RectTransform(); var cellHeight = _gridLayout.cellSize.y; var rows = Mathf.Ceil(levels.Length / (float)_columns); var contentHieght = cellHeight * rows; contentView.sizeDelta = new Vector2(1f, contentHieght); }