[TUTORIAL] Script de Contagem Regressiva
Página 1 de 1
[TUTORIAL] Script de Contagem Regressiva
Eu Estou criando um game e diversas vezes precisei de um contador regressivo, mas sem precisar usar a "coroutine" diversas vezes.
Um exemplo de uso Seria: 'Regenera a vida do player depois de certo tempo.'
Contador Regressivo:
Exemplo de Uso:
Foto 1: https://prnt.sc/o2174x
Foto 2: https://prnt.sc/o217c7
Um exemplo de uso Seria: 'Regenera a vida do player depois de certo tempo.'
Contador Regressivo:
- Código:
using UnityEngine;
// Matheus Leandro
public class ContagemRegressiva {
/* Esse Script é Um Sistema De Contagem Regressiva. */
/* Na Void "IniciarContador" deve-se passar somente o tempo em segundos.
* 1 hora = 3600 segundos */
//==================== ATRIBUTOS ====================//
private float tempo;
private bool isRunning, tempoZerado;
//==================== METODOS ====================//
public void IniciarContador(float time)
{
Tempo = time;
IsRunning = true;
TempoZerado = false;
}//END
public void PararContagem()
{
IsRunning = false;
TempoZerado = true;
}//END
//Aqui Acontece a Contagem Regressiva.
//(Esse Metodo Deve Ser Chamada No "FixedUpdate").
public void Contagem()
{
if (IsRunning)
{
Tempo -= Time.deltaTime;
if (Tempo <= 0)
{
IsRunning = false;
TempoZerado = true;
}
}
}//END
public string FormatarTempo(int val)
{
//Essa Função Transforma Segundos Em: Horas, Minutos e Segundos.
//Exemplo: Esse Metodo Formata "3600 Segundos" Nisso => "00:60:00"
int Seg = val % 60;
val /= 60;
int Min = val % 60;
val /= 60;
int Hour = val % 24;
return strzero(Hour) + ":" + strzero(Min) + ":" + strzero(Seg);
}//END
private string strzero(int val)
{
/* Complemento Da Função "FormatarTempo()".
* Adiciona um '0' Na Frente Da Hora, Minuto Ou Segundo, Caso For Menor Que '10'. */
return (val < 10) ? "0" + val.ToString() : val.ToString(); ;
}//END
public float Tempo
{
get
{
return tempo;
}
set
{
tempo = value;
}
}//END
public bool IsRunning
{
get
{
return isRunning;
}
set
{
isRunning = value;
}
}//END
public bool TempoZerado
{
get
{
return tempoZerado;
}
set
{
tempoZerado = value;
}
}//END
} // Matheus Leandro
Exemplo de Uso:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
// Matheus Leandro
public class Exemplo : MonoBehaviour {
//==================== ATRIBUTOS ====================//
ContagemRegressiva Contador1 = new ContagemRegressiva();
ContagemRegressiva Contador2 = new ContagemRegressiva();
ContagemRegressiva Contador3 = new ContagemRegressiva();
public Text TextTime1, TextTime2, TextTime3;
//==================== METODOS ====================//
private void Update()
{
VerificarBotoes();
}//END
private void FixedUpdate()
{
// Contador 1
if (Contador1.IsRunning)
{
Contador1.Contagem(); // Contando...
TextTime1.text = "Tempo 1 " + Contador1.FormatarTempo((int)Contador1.Tempo);
}
// Contador 2
if (Contador2.IsRunning)
{
Contador2.Contagem(); // Contando...
TextTime2.text = "Tempo 2 " + Contador2.FormatarTempo((int)Contador2.Tempo);
}
// Contador 3
if (Contador3.IsRunning)
{
Contador3.Contagem(); // Contando...
TextTime3.text = "Tempo 3 " + Contador3.FormatarTempo((int)Contador3.Tempo);
}
}//END
private void VerificarBotoes()
{
// Contador 1
if (Input.GetKeyDown(KeyCode.Alpha1)) { Contador1.IniciarContador(3600); } //1 Hora
// Contador 2
if (Input.GetKeyDown(KeyCode.Alpha2)) { Contador2.IniciarContador(10800); } //3 Horas
// Contador 3
if (Input.GetKeyDown(KeyCode.Alpha3)) { Contador3.IniciarContador(7200); } //2 Horas
}//END
} // Matheus Leandro
Foto 1: https://prnt.sc/o2174x
Foto 2: https://prnt.sc/o217c7
Magnatah- Instrutor
- PONTOS : 3547
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Tópicos semelhantes
» Colocar contagem regressiva
» Fazer uma contagem de tempo regressiva
» [TUTORIAL] Avião Script
» [TUTORIAL] Script de um animal!!!
» [TUTORIAL] Script de Flicker
» Fazer uma contagem de tempo regressiva
» [TUTORIAL] Avião Script
» [TUTORIAL] Script de um animal!!!
» [TUTORIAL] Script de Flicker
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos