コード例 #1
0
    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);
    }
コード例 #2
0
    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);
    }
コード例 #3
0
    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);
            }
        }
    }