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); }