[TUTORIAL] Mostrar Palavra Letra Por Letra
Página 1 de 1
[TUTORIAL] Mostrar Palavra Letra Por Letra
Eai pessoal blz?
Hoje vamos ver como exibir um texto, letra por letra, igual aqueles games antigos.
Hoje vamos ver como exibir um texto, letra por letra, igual aqueles games antigos.
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class WordToWordDisplay : MonoBehaviour
{
// MENSAGEM A SER EXIBIDA
[SerializeField]private string textToDisplay = "Ola Mundo!";
// TEXTO ATUAL MOSTRADO
private string currentText;
// ELEMENTO DE TEXTO PARA EXIBIR
[SerializeField]private Text UIText;
// ARRAY DE CHARACTERES
private char[] characters;
// INDICE ATUAL
private int currentIndex = -1;
// TEMPO PARA MOSTRAR CADA LETRA
[SerializeField]private float timeToChange = 0.25f;
// CONTADOR
private float currentTimeToChange;
// BOOLEANO REPRESENTANDO SE ACABOU
private bool isDone;
// DELEGATE PARA NOSSO EVENTO
public delegate void WordEvent(GameObject source);
// EVENTO ATIVADO QUANDO COMPLETAR A EXIBICAO DO TEXTO
public static event WordEvent onWordDone;
void Start ()
{
//CONVERTER A STRING EM ARRAY DE CHAR
characters = textToDisplay.ToCharArray ();
// FAZEMOS NOSSO METODO SER EXUCUTADO QUANDO O EVENTO FOR CHAMADO
onWordDone += OnWordDone_Callback;
}
void Update ()
{
// SE JA EXIBIU O TEXTO, NAO FAZ MAIS NADA
if (isDone) return;
// CASO CONTRARIO CONTINUA EXIBINDO
// CONTA O TEMPO
currentTimeToChange += Time.deltaTime;
// SE ESTA NA HORA DE MOSTRAR A PROXIMA LETRA
if (currentTimeToChange >= timeToChange) {
// RESETA O CONTADOR
currentTimeToChange = 0;
// VERIFICA SE JA EXIBIU TODAS AS LETRAS
if(currentIndex == characters.Length-1)
{
// ESTA COMPLETO
// INVOCA NOSSO EVENTO SE EXISTIR 'OUVINTES'
if (onWordDone != null)
onWordDone (gameObject);
return;
}
// SE AINDA NAO EXIBIU TODAS AS LETRAS
// AUMENTA O INDICE ATUAL
currentIndex++;
// PEGA A PROXIMA LETRA DA NOSSA PALAVRA
string newWord = characters [currentIndex].ToString ();
// JUNTA A LETRA COM O TEXTO ATUALMENTE EXIBIDO
currentText = string.Concat (currentText, newWord);
// ATUALIZA O CONTEUDO DO NOSSO TEXTO
UIText.text = currentText;
}
}
void OnWordDone_Callback(GameObject source)
{
// VERIFICAMOS SE FOI ESTE OBJETO QUE CHAMOU O EVENTO
if(source == gameObject)
{
// ESTA COMPLETO, PARA DE EXIBIR
isDone = true;
// PODEMOS REMOVER NOSSO METODO DA LISTA DE EVENTOS
onWordDone -= OnWordDone_Callback;
}
}
}
Tópicos semelhantes
» Tem como achar uma Letra/palavra dentro de uma string?
» [TUTORIAL] Mostrar pontos de uma variavel
» [TUTORIAL] Mostrar Data e Hora atual do Computador em um texto
» [TUTORIAL] Mostrar parâmetros ou configurações do dispositivo através de um script
» Palavra chave New no C#
» [TUTORIAL] Mostrar pontos de uma variavel
» [TUTORIAL] Mostrar Data e Hora atual do Computador em um texto
» [TUTORIAL] Mostrar parâmetros ou configurações do dispositivo através de um script
» Palavra chave New no C#
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos