Cronometro - Unity em C#
3 participantes
Página 1 de 1
Cronometro - Unity em C#
Estou tentando criar um cronometro decrescente para implementar no meu jogo e gostaria dele já com os valores convertido em hora:minuto:segundo, porém não estou conseguindo encontrar uma melhor forma de realizar isso.
Alguma sugestão?
Alguma sugestão?
Vitor Germano- Iniciante
- PONTOS : 1675
REPUTAÇÃO : 0
Respeito as regras :
Re: Cronometro - Unity em C#
- Código:
hours = time / 3600;
minutes = (time % 3600) / 60;
seconds = (time % 3600 ) % 60;
Weslley- Moderador
- PONTOS : 5726
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Cronometro - Unity em C#
Weslley escreveu:
- Código:
hours = time / 3600;
minutes = (time % 3600) / 60;
seconds = (time % 3600 ) % 60;
Como eu poderia montar o tempo decrescente no meu script para que depois eu possa colocar em uma string?
Vitor Germano- Iniciante
- PONTOS : 1675
REPUTAÇÃO : 0
Respeito as regras :
Re: Cronometro - Unity em C#
- Código:
float time;
void Update(){
time -= Time.deltaTime;
hours = time / 3600;
minutes = (time % 3600) / 60;
seconds = (time % 3600) % 60;
string value = string.Format("{0}:{1}:{2}", hours, minutes, seconds);
}
Weslley- Moderador
- PONTOS : 5726
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Cronometro - Unity em C#
Eu coloquei o seguinte script:
porém está acrescentando, eu quero fazer ele decrescer.
Sabe me dizer como consigo?
- Código:
public class tempo : MonoBehaviour
{
public int seg;
public int min;
public int hor;
// Start is called before the first frame update
void Start()
{
StartCoroutine("cronometro");
}
IEnumerator cronometro()
{
yield return new WaitForSeconds(1);
seg += 1;
if(seg == 60)
{
seg = 0;
min += 1;
if(min == 60)
{
min = 0;
hor += 1;
}
}
string s = seg.ToString();
if(seg < 10) { s = "0" + seg.ToString(); }
string m = min.ToString();
if (min < 10) { m = "0" + min.ToString(); }
string h = hor.ToString();
if (hor < 10) { h = "0" + hor.ToString(); }
print(h + ":" + m + ":" + s);
StartCoroutine("cronometro");
}
}
porém está acrescentando, eu quero fazer ele decrescer.
Sabe me dizer como consigo?
Vitor Germano- Iniciante
- PONTOS : 1675
REPUTAÇÃO : 0
Respeito as regras :
Re: Cronometro - Unity em C#
Ao invés de utilizar "+" usa o "-".Vitor Germano escreveu:Eu coloquei o seguinte script:
- Código:
public class tempo : MonoBehaviour
{
public int seg;
public int min;
public int hor;
// Start is called before the first frame update
void Start()
{
StartCoroutine("cronometro");
}
IEnumerator cronometro()
{
yield return new WaitForSeconds(1);
seg += 1;
if(seg == 60)
{
seg = 0;
min += 1;
if(min == 60)
{
min = 0;
hor += 1;
}
}
string s = seg.ToString();
if(seg < 10) { s = "0" + seg.ToString(); }
string m = min.ToString();
if (min < 10) { m = "0" + min.ToString(); }
string h = hor.ToString();
if (hor < 10) { h = "0" + hor.ToString(); }
print(h + ":" + m + ":" + s);
StartCoroutine("cronometro");
}
}
porém está acrescentando, eu quero fazer ele decrescer.
Sabe me dizer como consigo?
seg -= 1;
hor -= 1;
Não sei se tá certo porque faz pouco tempo que mexo com C# ainda, mas talvez funcione >D
Micco- MembroAvançado
- PONTOS : 1790
REPUTAÇÃO : 17
Áreas de atuação : C#, GDScript, HTML e CSS.
Respeito as regras :
Re: Cronometro - Unity em C#
Consegui resolver o script ficou assim:
Além disso defini no Inspector os valores que eu queria para as variáveis.
- Código:
IEnumerator cronometro()
{
yield return new WaitForSeconds(1f);
seg -= 1;
if(seg < 0)
{
seg = 59;
min -= 1;
if(min < 0)
{
min = 59;
hor -= 1;
if(hor < 0)
{
hor = 23;
}
}
}
string s = seg.ToString();
if(seg < 10) { s = "0" + seg.ToString(); }
string m = min.ToString();
if (min < 10) { m = "0" + min.ToString(); }
string h = hor.ToString();
if (hor < 10) { h = "0" + hor.ToString(); }
print(h + ":" + m + ":" + s);
StartCoroutine("cronometro");
}
Além disso defini no Inspector os valores que eu queria para as variáveis.
Vitor Germano- Iniciante
- PONTOS : 1675
REPUTAÇÃO : 0
Respeito as regras :
Re: Cronometro - Unity em C#
Boa!Vitor Germano escreveu:Consegui resolver o script ficou assim:
- Código:
IEnumerator cronometro()
{
yield return new WaitForSeconds(1f);
seg -= 1;
if(seg < 0)
{
seg = 59;
min -= 1;
if(min < 0)
{
min = 59;
hor -= 1;
if(hor < 0)
{
hor = 23;
}
}
}
string s = seg.ToString();
if(seg < 10) { s = "0" + seg.ToString(); }
string m = min.ToString();
if (min < 10) { m = "0" + min.ToString(); }
string h = hor.ToString();
if (hor < 10) { h = "0" + hor.ToString(); }
print(h + ":" + m + ":" + s);
StartCoroutine("cronometro");
}
Além disso defini no Inspector os valores que eu queria para as variáveis.
Boa sorte no teu projeto :D
Micco- MembroAvançado
- PONTOS : 1790
REPUTAÇÃO : 17
Áreas de atuação : C#, GDScript, HTML e CSS.
Respeito as regras :
Tópicos semelhantes
» DIALOGO COM CRONOMETRO UNITY 2D
» Zerar os tempos do Cronometro Unity
» cronometro ?
» Pausar o cronômetro
» [AJUDA] Cronometro
» Zerar os tempos do Cronometro Unity
» cronometro ?
» Pausar o cronômetro
» [AJUDA] Cronometro
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos