Beispiel #1
0
 void StartMessageExibition()
 {
     messagePanel.gameObject.SetActive(true);
     messagePanel.anchoredPosition = new Vector2(Screen.width, originalAnchoredPosition.y);
     infoText.text   = filaDeMensagens.Dequeue();
     contadorDeTempo = 0;
     phase           = TextDisplay.MessagePhase.boxOut;
 }
Beispiel #2
0
        // Update is called once per frame
        void Update()
        {
            if (phase != TextDisplay.MessagePhase.boxExited)
            {
                contadorDeTempo += Time.deltaTime;
            }

            switch (phase)
            {
            case TextDisplay.MessagePhase.boxOut:
                if (Vector2.Distance(messagePanel.anchoredPosition, originalAnchoredPosition) > 0.1f)
                {
                    messagePanel.anchoredPosition = Vector2.Lerp(
                        messagePanel.anchoredPosition, originalAnchoredPosition, contadorDeTempo / tempoVindo);
                }
                else
                {
                    phase           = TextDisplay.MessagePhase.messageFilling;
                    contadorDeTempo = 0;
                }
                break;

            case TextDisplay.MessagePhase.messageFilling:
                float tempoDeView = tempoVisualizando;

                if (filaDeMensagens.Count > 1 && infoText.text == filaDeMensagens.Peek())
                {
                    tempoDeView = tempoVisualizandoMensIgual;
                }

                if (contadorDeTempo > tempoDeView)
                {
                    contadorDeTempo = 0;
                    phase           = TextDisplay.MessagePhase.boxGoingOut;
                }
                break;

            case TextDisplay.MessagePhase.boxGoingOut:
                if (Mathf.Abs(messagePanel.anchoredPosition.x - Screen.width) > 0.1f)
                {
                    messagePanel.anchoredPosition = Vector2.Lerp(messagePanel.anchoredPosition,
                                                                 new Vector2(Screen.width, messagePanel.anchoredPosition.y),
                                                                 contadorDeTempo / tempoIndo);
                }
                else
                {
                    phase = TextDisplay.MessagePhase.boxExited;
                    VerifyStartNewMessage();
                }
                break;
            }
        }