void Start() { if (menuSceneIndex == SceneManager.GetActiveScene().buildIndex) { inMenu = true; } else { inMenu = false; menu.SetActive(false); } currentLevel = levels[levelIndex]; levelImage.sprite = currentLevel.GetScreencap(); }
//Scans for a level that matches the index void GetCurrentLevel() { while (levelNumber != currentLevelNumber || worldNumber != currentWorldNumber) { if (levelIndex <= levels.Length - 2) { levelIndex++; } else { levelIndex = 0; } levelNumber = levels[levelIndex].GetLevelNumber(); worldNumber = levels[levelIndex].GetWorldNumber(); } currentLevel = levels[levelIndex]; levelImage.sprite = currentLevel.GetScreencap(); }
private IEnumerator UnlockNextLevelCoroutine() { if (levels == null) { levels = LevelsSO.instance; } levels.Levels[LastUnlockedLevel + 1].Locked = false; float speed = 10.0f; Vector3 startPos = MainCamera.transform.position; Vector3 destPos = MainCamera.transform.position + new Vector3(11.0f, 0.0f, 0.0f); float step = (speed / (startPos - destPos).magnitude) * Time.fixedDeltaTime; float t = 0; while (t <= 1.0f) { t += step; MainCamera.transform.position = Vector3.Lerp(startPos, destPos, t); yield return(new WaitForFixedUpdate()); } MainCamera.transform.position = destPos; LastUnlockedLevel++; Animator levelAnimator = levelWalls[LastUnlockedLevel].GetComponent <Animator>(); UnlockSound.Play(62000); levelAnimator.SetBool("Unlock", true); var waitTime = levelAnimator.GetCurrentAnimatorStateInfo(0).length; yield return(new WaitForSeconds(waitTime)); startPos = MainCamera.transform.position; destPos = MainCamera.transform.position - new Vector3(11.0f, 0.0f, 0.0f); step = (speed / (startPos - destPos).magnitude) * Time.fixedDeltaTime; t = 0; while (t <= 1.0f) { t += step; MainCamera.transform.position = Vector3.Lerp(startPos, destPos, t); yield return(new WaitForFixedUpdate()); } MainCamera.transform.position = destPos; SoldierWalkSound.Play(); rightSoldierController.gameObject.GetComponent <Animator>().SetTrigger("Right_Walk"); leftSoldierController.gameObject.GetComponent <Animator>().SetTrigger("Left_Walk"); speed = 5.0f; startPos = MainCamera.transform.position; destPos = MainCamera.transform.position + new Vector3(11.0f, 0.0f, 0.0f); Vector3 soldierStartPos = Soldiers.transform.position; Vector3 soldierDestPos = Soldiers.transform.position + new Vector3(11.0f, 0.0f, 0.0f); step = (speed / (startPos - destPos).magnitude) * Time.fixedDeltaTime; t = 0; while (t <= 1.0f) { t += step; MainCamera.transform.position = Vector3.Lerp(startPos, destPos, t); Soldiers.transform.position = Vector3.Lerp(soldierStartPos, soldierDestPos, t); yield return(new WaitForFixedUpdate()); } MainCamera.transform.position = destPos; rightSoldierController.gameObject.GetComponent <Animator>().SetTrigger("Idle"); leftSoldierController.gameObject.GetComponent <Animator>().SetTrigger("Idle"); SoldierWalkSound.Stop(); GameTicketManager.Instance.MenuBGSound.Play(44100 / 2); yield return(new WaitForSeconds(1.0f)); GameTicketManager.Instance.SelectedLevel = LastUnlockedLevel + 1; GameTicketManager.Instance.ShowPlayGamePopUp(true); }