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); } }
private void DeselectCurrentItem() { if (selected != null) // Is there a selected item currently? { selected.GetComponent <Image>().sprite = outlineUnselectedSprite; selected = null; } }
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); }
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); } }
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(); } }
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()); }
int Compare(LevelSelectItem itm1, LevelSelectItem itm2) { return(itm1.gameObject.name.CompareTo(itm2.gameObject.name)); }