private void ChangeCollection() { this.Clear(); var collection = GameState.Collections[GameState.CurrentCollectionIndex]; collectionText.GetComponent <Text>().text = collection; GameState.CurrentCollectionLevels = LevelFileLoader.GetLevels(collection).ToArray(); var index = 0; foreach (var level in GameState.CurrentCollectionLevels) { var buttonGameObject = (GameObject)Instantiate(levelButtonPrefab); buttonGameObject.transform.SetParent(layoutContent.transform, false); buttonGameObject.transform.GetChild(0).GetComponent <Text>().text = level.Item1; instances.Add(buttonGameObject); var button = buttonGameObject.GetComponent <UnityEngine.UI.Button>(); // add lsitener button.onClick.AddListener(() => { GameState.CurrentLevelIndex = index; CommunicationService.ChangeLevel(level); }); } // switch buttons previousButton.SetActive(GameState.CurrentCollectionIndex > 0); nextButton.SetActive(GameState.CurrentCollectionIndex < collection.Length - 1); index++; }
private void Start() { GameState.Collections = LevelFileLoader.ListCollections(); ChangeCollection(); var _nextButton = nextButton.GetComponent <UnityEngine.UI.Button>(); _nextButton.onClick.AddListener(() => { GameState.CurrentCollectionIndex++; ChangeCollection(); }); var _previousButton = previousButton.GetComponent <UnityEngine.UI.Button>(); _previousButton.onClick.AddListener(() => { GameState.CurrentCollectionIndex--; ChangeCollection(); }); var _resetButton = resetButton.GetComponent <UnityEngine.UI.Button>(); _resetButton.onClick.AddListener(() => { CommunicationService.ChangeLevel(GameState.CurrentCollectionLevels[GameState.CurrentLevelIndex]); }); CommunicationService.LevelChange += (Tuple <string, char[][]> level) => { menuCanvas.SetActive(false); resetButton.SetActive(true); }; resetButton.SetActive(false); }