Example #1
0
    // Update is called once per frame
    void Update()
    {
        if (state == 0 || state == 1)
        {
            #region pre
            if (alphaSetOff && currBtnAlpha < 1f)
            {
                currBtnAlpha += Time.deltaTime;
                if (currBtnAlpha >= 0.1f)
                {
                    state = 1;
                }
                if (currBtnAlpha >= 1f)
                {
                    currBtnAlpha = 1f;

                    silhouettes.SetActive(true);
                }
            }

            foreach (Transform gObject in buttonsPanel.transform)
            {
                gObject.GetComponent <Image>().color = new Color(1, 1, 1, currBtnAlpha);
            }

            #endregion
        }
        if (state == 1)
        {
            #region default

            if (!loadingAdded)
            {
                loadingAdded = true;
                canvas.GetComponent <Canvas>().sortingOrder = 5;
            }

            if (Input.GetKeyDown(KeyCode.Space) || Input.GetKeyDown(KeyCode.Return))
            {
                if (selectedOption == 0)
                {
                    //SceneManager.LoadScene("StoryIntro");
                    GetComponent <SceneTransitioner>().TransitionWithFade("StoryIntro", Color.black);
                    InventoryHolder.AddItems();
                    GlobalHolder.stage1Complete   = false;
                    GlobalHolder.stage1Checkpoint = false;
                    GlobalHolder.hollowAlphaSeen  = false;
                    GlobalHolder.mainLabTipsSeen  = false;
                    state = 3;
                }
                else if (selectedOption == 1)
                {
                    state = 2;
                }
                else if (selectedOption == 2)
                {
                    Application.Quit();
                }
            }
            else if (Input.GetKeyDown(KeyCode.DownArrow))
            {
                selectedOption++;
                selectedOption = selectedOption % 3;
            }
            else if (Input.GetKeyDown(KeyCode.UpArrow))
            {
                if (selectedOption == 0)
                {
                    selectedOption = 2;
                }
                else
                {
                    selectedOption--;
                }
            }

            if (selectedOption == 0)
            {
                leftFinalPos  = new Vector3(-55.5f, -18, 0);
                rightFinalPos = new Vector3(55.5f, -18, 0);
            }
            else if (selectedOption == 1)
            {
                leftFinalPos  = new Vector3(-47.5f, -106, 0);
                rightFinalPos = new Vector3(47.5f, -106, 0);
            }
            else
            {
                leftFinalPos  = new Vector3(-43.5f, -150, 0);
                rightFinalPos = new Vector3(43.5f, -150, 0);
            }

            leftSelector.transform.localPosition  += (leftFinalPos - leftSelector.transform.localPosition) / 2f;
            rightSelector.transform.localPosition += (rightFinalPos - rightSelector.transform.localPosition) / 2f;

            if (particleTimer >= 0.2f)
            {
                particleTimer = 0f;
                GameObject particle = Instantiate(Resources.Load <GameObject>("Prefabs/TitleParticle"));
                particle.transform.SetParent(particleCanvas.transform);
                particle.transform.localPosition = new Vector3(Random.Range(-320f, 320f), 200, 0);
            }
            else
            {
                particleTimer += Time.deltaTime;
            }

            if (creditsImage.color.a > 0f)
            {
                creditsImage.color = new Color(1, 1, 1, Mathf.Max(creditsImage.color.a - Time.deltaTime * 2f, 0f));
            }
            #endregion
        }
        else if (state == 2)
        {
            #region credits

            if (creditsImage.color.a < 1f)
            {
                creditsImage.color = new Color(1, 1, 1, Mathf.Min(creditsImage.color.a + Time.deltaTime * 2f, 1f));
            }

            if (Input.GetKeyDown(KeyCode.Space) || Input.GetKeyDown(KeyCode.Return) || Input.GetKeyDown(KeyCode.Escape))
            {
                state = 1;
            }

            #endregion
        }
        else if (state == 3)
        {
            #region transitioning

            bgmvolume -= Time.deltaTime / 2f;
            GetComponent <AudioSource>().volume = bgmvolume;

            if (creditsImage.color.a > 0f)
            {
                creditsImage.color = new Color(1, 1, 1, Mathf.Max(creditsImage.color.a - Time.deltaTime, 0f));
            }
            #endregion
        }
    }