Tempo para reiniciar o loop
2 participantes
Página 1 de 1
Tempo para reiniciar o loop
Boa tarde, gostaria de colocar um tempo determinado para reinicar o loop enquanto este for verdade:
- Código:
public void Dormir()
{
if (dormindo == false)
{
dormindo = true;
sp.enabled = false;
sr.sprite = cama2;
while (dormindo == true && ponte.energia < 100)
{
ponte.energia++;
// ADICIONAR O TEMPO AQUI
}
}
else
{
sp.enabled = true;
sr.sprite = cama1;
dormindo = false;
}
}
maxwarnava- Membro
- PONTOS : 1820
REPUTAÇÃO : 3
Respeito as regras :
Re: Tempo para reiniciar o loop
Primeiro se não tiver um conômetro, teria que criar um:
um conômetro que percorre 10 minutos
creio que de para fazer com Coroutines também:
https://docs.unity3d.com/Manual/Coroutines.html
Tem um tópico sobre isso aqui no fórum, link:
https://www.schultzgames.com/t584-pedido-de-tutorial-cronometro
Resultados da pesquisa
- Código:
private float tempo;
private float tempoFinalSegundos = 60f;
private int minutos;
void Update()
{
if(minutos <= 10)
{
if(tempo <= tempoFinalSegundos)
{
tempo += Time.deltaTime;
}else{
minutos += 1;
tempo = 0f;
}
}
if(minutos == 10)
{
minutos = 0;
}
}
um conômetro que percorre 10 minutos
creio que de para fazer com Coroutines também:
https://docs.unity3d.com/Manual/Coroutines.html
Tem um tópico sobre isso aqui no fórum, link:
https://www.schultzgames.com/t584-pedido-de-tutorial-cronometro
Resultados da pesquisa
Resultados da Web
poyser- Avançado
- PONTOS : 3035
REPUTAÇÃO : 46
Idade : 26
Áreas de atuação : https://play.google.com/store/apps/dev?id=6312026995180986052
Respeito as regras :
Re: Tempo para reiniciar o loop
Eu ja tentei adicionar um assim mas o Unity simplesmente trava
maxwarnava- Membro
- PONTOS : 1820
REPUTAÇÃO : 3
Respeito as regras :
Re: Tempo para reiniciar o loop
aparece algum erro quando ele trava?
poyser- Avançado
- PONTOS : 3035
REPUTAÇÃO : 46
Idade : 26
Áreas de atuação : https://play.google.com/store/apps/dev?id=6312026995180986052
Respeito as regras :
Re: Tempo para reiniciar o loop
Não, mas agora não trava mais, o problema agora é que a energia simplesmente não sobe, não importa oq eu faça, vou colar o script todo aqui pq ja to surtando com isso
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class Botoes : MonoBehaviour
{
public float saturapizza = 0;
public float saturapanqueca = 0;
public float saturafrango = 0;
public float saturaquente = 0;
public float saturabolacha = 0;
float tempo;
float tempoespera = 5;
float tempo2;
float tempoespera2 = 5;
bool dormindo = false;
public GameObject pizza;
public GameObject panqueca;
public GameObject frango;
public GameObject quente;
public GameObject bolacha;
public GameObject cama;
public GameObject dog;
public Sprite cama1;
public Sprite cama2;
public AudioSource audio;
public AudioSource audio2;
private SpriteRenderer sp;
private SpriteRenderer sr;
private Animator anim;
private Animator anim2;
private Animator anim3;
private Animator anim4;
private Animator anim5;
void Start()
{
anim = pizza.GetComponent<Animator>();
anim2 = panqueca.GetComponent<Animator>();
anim3 = frango.GetComponent<Animator>();
anim4 = quente.GetComponent<Animator>();
anim5 = bolacha.GetComponent<Animator>();
}
// Update is called once per frame
void Update()
{
anim.SetTrigger("descliquepizza");
anim2.SetTrigger("descliquepanqueca");
anim3.SetTrigger("desclicafrango");
anim4.SetTrigger("quentedesclica");
anim5.SetTrigger("bolachadesclica");
tempo2 = Time.deltaTime;
tempo = Time.deltaTime;
if (saturapizza > 0 && tempo > tempoespera)
{
saturapizza--;
}
if (saturapanqueca > 0 && tempo > tempoespera)
{
saturapanqueca--;
}
if (saturafrango > 0 && tempo > tempoespera)
{
saturafrango--;
}
if (saturaquente > 0 && tempo > tempoespera)
{
saturaquente--;
}
if (saturabolacha > 0 && tempo > tempoespera)
{
saturabolacha--;
}
}
void FixedUpdate()
{
sp = dog.GetComponent<SpriteRenderer>();
sr = cama.GetComponent <SpriteRenderer>();
}
public void Dormir()
{
if (dormindo == true)
{
sp.enabled = true;
sr.sprite = cama1;
dormindo = false;
while (dormindo == true && ponte.energia < 100 && tempo2 > tempoespera2)
{
ponte.energia += 1;
tempo2 = 0f;
}
}
else
{
dormindo = true;
sp.enabled = false;
sr.sprite = cama2;
}
}
public void Energia()
{
SceneManager.LoadScene("Energia", LoadSceneMode.Single);
audio2.Play(0);
}
public void Comida()
{
SceneManager.LoadScene("Comidas", LoadSceneMode.Single);
audio2.Play(0);
}
public void Casa()
{
if (dormindo == false)
{
SceneManager.LoadScene("Casa", LoadSceneMode.Single);
audio2.Play(0);
}
}
public void Pizza()
{
if (ponte.fome < 100 && ponte.moedas > 10)
{
ponte.fome += 10;
ponte.fome -= saturapizza;
saturapizza++;
ponte.moedas -= 10;
}
audio.Play(0);
anim.SetTrigger("cliquepizza");
}
public void Panqueca()
{
if (ponte.fome < 100 && ponte.moedas > 7)
{
ponte.fome += 5;
ponte.fome -= saturapanqueca;
saturapanqueca++;
ponte.moedas -= 7;
}
audio.Play(0);
anim2.SetTrigger("panquecasclique");
}
public void Frango()
{
if (ponte.fome < 100 && ponte.moedas > 3)
{
ponte.fome += 7;
ponte.fome -= saturafrango;
saturafrango++;
ponte.moedas -= 3;
}
audio.Play(0);
anim3.SetTrigger("frangoclica");
}
public void Quente()
{
if (ponte.fome < 100 && ponte.moedas > 5)
{
ponte.fome += 12;
ponte.fome -= saturaquente;
saturaquente++;
ponte.moedas -= 5;
}
audio.Play(0);
anim4.SetTrigger("quenteclica");
}
public void Bolacha()
{
if (ponte.fome < 100 && ponte.moedas > 1)
{
ponte.fome += 2;
ponte.fome -= saturabolacha;
saturabolacha++;
ponte.moedas -= 1;
}
audio.Play(0);
anim5.SetTrigger("bolachaclica");
}
}
maxwarnava- Membro
- PONTOS : 1820
REPUTAÇÃO : 3
Respeito as regras :
Re: Tempo para reiniciar o loop
Ah, e o audio dos botões tambem não ta tocando, aaaaaaaaaaaaaaaaaaaa
maxwarnava- Membro
- PONTOS : 1820
REPUTAÇÃO : 3
Respeito as regras :
Re: Tempo para reiniciar o loop
nao sei se estou vendo errado ou se esta em outro script mas nao estou vendo as voids serem chamadas, pizza, bolacha, quente, dormir, entre as outras, se tiverem em outro script então seria bom ver os outros scripts também para ver se está sendo chamado corretamente la. Pois se esse é o único script ai vc teria que chamar as voids em algum momento.
poyser- Avançado
- PONTOS : 3035
REPUTAÇÃO : 46
Idade : 26
Áreas de atuação : https://play.google.com/store/apps/dev?id=6312026995180986052
Respeito as regras :
Re: Tempo para reiniciar o loop
Essas voids são botões
maxwarnava- Membro
- PONTOS : 1820
REPUTAÇÃO : 3
Respeito as regras :
Tópicos semelhantes
» Audio para carro em loop
» [ASSET] Musiquinha em loop violino e piano, para rpg talvez...
» Como faço para dar break através de um loop de explosões, jogo estilo bomberman.
» Tem um modo facil para esperar tanto tempo e ocorrer uma açao?
» [Resolvido]Como fais para dar um determinado tempo em um script
» [ASSET] Musiquinha em loop violino e piano, para rpg talvez...
» Como faço para dar break através de um loop de explosões, jogo estilo bomberman.
» Tem um modo facil para esperar tanto tempo e ocorrer uma açao?
» [Resolvido]Como fais para dar um determinado tempo em um script
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos