public void SetMenuLevels(int chapterNumber) { ResetScreenshots(); int nbCompleted = 0; int totalLevels = 0; List <Level> levels = GameManager.Instance.Saves[GameManager.Instance.CurrentSave].Chapters[chapterNumber].GetLevels(); foreach (Level l in levels) { if (l.Completed) { nbCompleted++; } totalLevels++; } //SetMenuLevelInfo(0, screenshots[0]); LevelButtonInfosArray levelButtonInfosArray = null; if (chapterNumber < levelButtonInfosMatrix.Length) { levelButtonInfosArray = levelButtonInfosMatrix[chapterNumber]; } int nbLevelSpawned = 0; for (int i = 0; i < totalLevels; i++) // Create the levels buttons { if (i == 0 || (levels[i].IsCheckpoint && levels[i - 1].Completed)) { int localLevelIndex = i; //TODO : aller chercher le bon srceenshot LevelScreenshot spawnedScreenshot = Instantiate(levelScreenshotPrefab, levelScreenshotsParent.transform).GetComponent <LevelScreenshot>(); SetMenuLevelInfo(i, spawnedScreenshot); spawnedScreenshot.GetComponent <Button>().onClick.AddListener(delegate { LevelButtonClicked(new LoadingChapterInfo(localLevelIndex), spawnedScreenshot); }); spawnedScreenshot.LevelId = localLevelIndex; spawnedScreenshot.levelIndex = nbLevelSpawned; spawnedScreenshot.GetComponent <RectTransform>().localPosition = new Vector3(nbLevelSpawned * distanceBetweenScreenshots, 0, 0); if (levelButtonInfosArray != null && nbLevelSpawned < levelButtonInfosArray.infos.Length) { LevelButtonInfos levelButtonInfos = levelButtonInfosArray.infos[nbLevelSpawned]; spawnedScreenshot.screenshot.sprite = levelButtonInfos.image; } screenshots.Add(spawnedScreenshot); nbLevelSpawned++; } } EventSystem.current.SetSelectedGameObject(screenshots[0].gameObject); }
private void LevelButtonClicked(LoadingChapterInfo loadingChapterInfo, LevelScreenshot screenshot) { int currentSave = GameManager.Instance.CurrentSave; if (GameManager.Instance.Saves[currentSave].NbPlayer == 1) { GameManager.Instance.LoadChapter("ChapterSolo_0" + GameManager.Instance.CurrentChapter, loadingChapterInfo); } else { GameManager.Instance.LoadChapter("ChapterDuo_0" + GameManager.Instance.CurrentChapter, loadingChapterInfo); } //animation StartCoroutine(screenshot.PressedAnimation()); //disable les controles pour ne pas pouvoir continuer alors qu'un bouton a déjà été pressed pressed = true; EventSystem.current.SetSelectedGameObject(null); }
public void SetMenuLevelInfo(int level, LevelScreenshot screenshot) { List <KeyValuePair <string, bool> > collectiblesTaken = GetCollectibleToNextCheckPoint(level); foreach (KeyValuePair <string, bool> kv in collectiblesTaken) { if (kv.Key == "light" && kv.Value) { Instantiate(collectibleLight, screenshot.collectiblesHolder.transform); } else if (kv.Key == "shadow" && kv.Value) { Instantiate(collectibleShadow, screenshot.collectiblesHolder.transform); } else { Instantiate(collectibleMissing, screenshot.collectiblesHolder.transform); } } }