public void Setup(StageModel currentStageModel) { List <StageModel> stageData = SaveManager.Instance.GetSavedStages(); this.currentStageModel = currentStageModel; for (int i = 0; i < stageData.Count; i++) { if (i >= stages.Count) { createNewSavedStageElement(); } stages [i].Setup(stageData [i]); } int diff = stages.Count - stageData.Count; if (diff > 0) { for (int i = 0; i < diff; i++) { deleteLastListElement(); } } if (currentSelected != null) { currentSelected.Deselect(); } currentSelected = null; refreshButtons(); }
void createNewSavedStageElement() { GameObject newGameObject = Instantiate(listElementPrefab); newGameObject.SetActive(true); newGameObject.transform.SetParent(listElementContainer, false); SavedStageListElement savedStageListElement = newGameObject.GetComponent <SavedStageListElement> (); savedStageListElement.OnClick += onListElementClicked; stages.Add(newGameObject.GetComponent <SavedStageListElement> ()); }
void onListElementClicked(SavedStageListElement savedStageListElement) { for (int i = 0; i < stages.Count; i++) { if (savedStageListElement == stages [i]) { stages [i].Select(); } else { stages [i].Deselect(); } } currentSelected = savedStageListElement; refreshButtons(); }