示例#1
0
 void Start()
 {
     if (menuSceneIndex == SceneManager.GetActiveScene().buildIndex)
     {
         inMenu = true;
     }
     else
     {
         inMenu = false;
         menu.SetActive(false);
     }
     currentLevel      = levels[levelIndex];
     levelImage.sprite = currentLevel.GetScreencap();
 }
示例#2
0
 //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();
 }
示例#3
0
    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);
    }