private void Start()
    {
        if (items != null)
        {
            foreach (var item in items)
            {
                Destroy(item.gameObject);
            }
            items.Clear();
        }
        else
        {
            items = new List <LevelSelectItem>();
        }


        for (int i = 1; i <= itemCount; i++)
        {
            LevelSelectItem item = GameObject.Instantiate(prefab);
            item.levelName  = "关卡" + i.ToString();
            item.levelIndex = i;
            item.transform.SetParent(transform);
            item.text.text = item.levelName;
            item.RegEvent();
            //item.GetComponent<Button>().onClick += mainPanel.StartGame;

            items.Add(item);
        }
    }
Exemple #2
0
 private void DeselectCurrentItem()
 {
     if (selected != null) // Is there a selected item currently?
     {
         selected.GetComponent <Image>().sprite = outlineUnselectedSprite;
         selected = null;
     }
 }
Exemple #3
0
    void Init()
    {
        if (!mIsInit)
        {
            mLevels = GetComponentsInChildren <LevelSelectItem>(true);
            System.Array.Sort(mLevels, Compare);

            mIsInit = true;
        }

        LevelManager lvlMgr = LevelManager.instance;

        int lastLevelUnlocked = 0;

        int numLevels     = lvlMgr.curStageData.levels.Length;
        int numItemLevels = mLevels.Length;

        for (int i = 0; i < numLevels; i++)
        {
            LevelSelectItem itm = mLevels[i];
            itm.Init(i);

            if (i == 0 || lvlMgr.curStageData.levels[i - 1].completed)
            {
                lastLevelUnlocked = i;
            }
        }

        //hide excess level items
        for (int i = numLevels; i < numItemLevels; i++)
        {
            LevelSelectItem itm = mLevels[i];
            itm.gameObject.SetActive(false);
        }

        //determine connections
        mLevels[0].buttonKeys.selectOnUp = mLevels[numLevels - 1].buttonKeys;
        mLevels[numLevels - 1].buttonKeys.selectOnDown = mLevels[0].buttonKeys;

        for (int i = 0; i < numLevels; i++)
        {
            if (i > 0)
            {
                mLevels[i].buttonKeys.selectOnUp = mLevels[i - 1].buttonKeys;
            }

            if (i < numLevels - 1)
            {
                mLevels[i].buttonKeys.selectOnDown = mLevels[i + 1].buttonKeys;
            }
        }

        mLevelSelectInd = lastLevelUnlocked < numLevels - 1 ? lastLevelUnlocked : 0;

        title.text = lvlMgr.curStageData.title;
    }
    LevelSelectItem createLevelItem()
    {
        //Instantiate level Item
        LevelSelectItem item = Instantiate(LevelItemPrefab);

        item.transform.SetParent(levelItemsContainer);
        item.transform.localScale    = Vector3.one;
        item.transform.localPosition = Vector3.zero;

        return(item);
    }
Exemple #5
0
 private int CompareItems(LevelSelectItem a, LevelSelectItem b)
 {
     if (a.levelIndex > b.levelIndex)
     {
         return(1);
     }
     if (a.levelIndex < b.levelIndex)
     {
         return(-1);
     }
     return(0);
 }
    void InitializeLevelSelectMenu()
    {
        for (int i = 0; i < levelItemsConfiguration.Count; i++)
        {
            //1 .Instantiate level Item
            LevelSelectItem item = createLevelItem();

            //2. Initialize Item
            item.setLevelItem(levelItemsConfiguration[i].levelImage, i + 1,
                              levelItemsConfiguration[i].levelName, levelItemsConfiguration[i].hasSubLevel,
                              levelItemsConfiguration[i].subLevelName,
                              levelItemsConfiguration[i].levelToLoad, levelItemsConfiguration[i].isLocked);
        }
    }
Exemple #7
0
    public void SelectItem(LevelSelectItem item)
    {
        if (item != selected)
        {
            DeselectCurrentItem();

            // Update selected item
            selected = item;
            selected.GetComponent <Image>().sprite = outlineSelectedSprite;

            // Update overview board
            overviewName.text = item.levelName;

            // Update best time
            int time = PlayerPrefs.GetInt("best-time-level" + item.levelIndex, -1);
            if (time != -1)
            {
                string minutes = (time / 60).ToString();
                string seconds = (time % 60).ToString("00");
                overviewTime.text = string.Format("{0}:{1}", minutes, seconds); // Update timer count.
            }
            else
            {
                overviewTime.text = "--";
            }

            // Update high score
            int score = PlayerPrefs.GetInt("high-score-level" + item.levelIndex, -1);
            if (score != -1)
            {
                overviewScore.text = score.ToString();
            }
            else
            {
                overviewScore.text = "--";
            }

            overview.SetActive(true);

            // Play selection sound
            asource.Play();
        }
    }
Exemple #8
0
    void Awake()
    {
        int i = 0;

        foreach (var level in levelManager.UnlockedLevels())
        {
            var item = Instantiate(listItem, container).GetComponent <LevelSelectItem>();
            item.levelSelect = this;
            item.AttachLevel(level, i);

            if (i == levelManager.CurrentLevel)
            {
                defaultItem = listItem;
            }

            i++;
        }

        //StartCoroutine(pickDefault());
    }
Exemple #9
0
 int Compare(LevelSelectItem itm1, LevelSelectItem itm2)
 {
     return(itm1.gameObject.name.CompareTo(itm2.gameObject.name));
 }