Exemplo n.º 1
0
    public override void EnterState(SceneManager context, int idx = 0)
    {
        base.EnterState(context);

        SoundManager.Instance.SetAmbientTrack(0, ambientTrack.data, ambientTrack.targetVolume);

        SetPhase(TargetScenePhase.Part1);
        VRInput.Instance.ReticleColor       = new Color(0, 0, 0, 0);
        VRInput.Instance.MaxReticleDistance = 8;
        initialBalloon.GetComponent <Balloon>().Restore();
        secondBalloon.gameObject.SetActive(false);
        for (int i = 0; i < randomBalloon.Length; i++)
        {
            randomBalloon[i].gameObject.SetActive(false);
        }
        rBalloonIdx     = 0;
        balloonPopCount = 0;
        complete        = false;

        for (int i = 0; i < introTexts.Length; i++)
        {
            Color c = introTexts[i].color;
            c.a = 1;
            introTexts[i].color = c;
        }
        Color c3 = introCard.material.color;

        c3.a = 1 * cardOpacity;
        introCard.material.color = c3;

        Color c4 = secondCard.material.color;

        c4.a = 0 * cardOpacity;
        secondCard.material.color = c4;

        Color c2 = secondText.color;

        c2.a             = 0;
        secondText.color = c2;
    }
Exemplo n.º 2
0
    public override void DoUpdate(SceneManager context)
    {
        if (menu.IsClicked)
        {
            SceneManager.Instance.StateTransition(SceneManager.Instance.menuScene);
        }
        else if (restart.IsClicked)
        {
            SceneManager.Instance.StateTransition(SceneManager.Instance.targetScene);
        }
        else if (nextLab.IsClicked)
        {
            SceneManager.Instance.StateTransition(SceneManager.Instance.visionScene);
        }

        if (initialBalloon.IsClicked)
        {
            initialBalloon.GetComponent <Balloon>().Pop();
            secondBalloon.GetComponent <Balloon>().Restore();
        }
        else if (secondBalloon.IsClicked)
        {
            secondBalloon.GetComponent <Balloon>().Pop();
            randomBalloon[0].GetComponent <Balloon>().Restore();
            SetPhase(TargetScenePhase.Part2);
        }
        else if (randomBalloon[rBalloonIdx].IsClicked)
        {
            balloonPopCount += 1;
            randomBalloon[rBalloonIdx].GetComponent <Balloon>().Pop();
            rBalloonIdx = (rBalloonIdx + 1) % randomBalloon.Length;
            if (balloonPopCount > 1)
            {
                if (!complete)
                {
                    complete = true;
                }

                if (Time.time > lastToastAlert + 15)
                {
                    lastToastAlert = Time.time;
                    if (Toaster.Instance != null)
                    {
                        Toaster.Instance.Toast();
                    }
                    //toaster.TargetAlpha = 1;
                    //toaster.Timeout = 2;
                }
            }
        }


        if (phase == TargetScenePhase.Part1)
        {
            if (!initialBalloon.IsClicked)
            {
                if (!menu.IsClicked && !restart.IsClicked && !nextLab.IsClicked)
                {
                    if (VRInput.Instance.PrimaryButton.Pressed)
                    {
                        VRInput.Instance.SetReticleColor(new Color(1, 0.2f, 0.2f, 1));
                    }
                }
            }

            if ((VRInput.Instance.Pitch) < -30)
            {
                VRInput.Instance.ReticleColor = new Color(0, 0, 0, 0.5f);
            }
            else
            {
                VRInput.Instance.ReticleColor = new Color(0, 0, 0, 0);
            }

            for (int i = 0; i < introTexts.Length; i++)
            {
                Color c = introTexts[i].color;
                c.a = Mathf.Clamp01(c.a + 4f * Time.deltaTime);
                introTexts[i].color = c;
            }

            Color c2 = secondText.color;
            c2.a             = Mathf.Clamp01(c2.a - 4f * Time.deltaTime);
            secondText.color = c2;

            Color c3 = introCard.material.color;
            c3.a = Mathf.Clamp(c3.a + cardOpacity * 4f * Time.deltaTime, 0, cardOpacity);
            introCard.material.color = c3;

            Color c4 = secondCard.material.color;
            c4.a = Mathf.Clamp01(c4.a - 4f * Time.deltaTime);
            secondCard.material.color = c4;
        }
        else if (phase == TargetScenePhase.Part2)
        {
            if (randomBalloon[rBalloonIdx].gameObject.activeSelf == false)
            {
                randomBalloon[rBalloonIdx].transform.localPosition = initialPosition + new Vector3(3.5f * (Random.value - 0.5f), 0, 3.5f * (Random.value - 0.5f));
                randomBalloon[rBalloonIdx].GetComponent <Balloon>().Restore(false);

                if (colors.Length > 2)
                {
                    int newIdx = lastColorIdx;
                    while (newIdx == lastColorIdx)
                    {
                        newIdx = Random.Range(0, colors.Length);
                    }
                    lastColorIdx = newIdx;
                    randomBalloon[rBalloonIdx].GetComponent <Balloon>().SetColor(colors[newIdx]);
                }
                else
                {
                    randomBalloon[rBalloonIdx].GetComponent <Balloon>().SetColor(colors[Random.Range(0, colors.Length)]);
                }
            }

            for (int i = 0; i < introTexts.Length; i++)
            {
                Color c = introTexts[i].color;
                c.a = Mathf.Clamp01(c.a - 4f * Time.deltaTime);
                introTexts[i].color = c;
            }

            Color c2 = secondText.color;
            c2.a             = Mathf.Clamp01(c2.a + 4f * Time.deltaTime);
            secondText.color = c2;

            Color c3 = introCard.material.color;
            c3.a = Mathf.Clamp01(c3.a - 4f * Time.deltaTime);
            introCard.material.color = c3;

            Color c4 = secondCard.material.color;
            c4.a = Mathf.Clamp(c4.a + cardOpacity * 4f * Time.deltaTime, 0, cardOpacity);
            secondCard.material.color = c4;
        }
    }