Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Problema con el temporizador

Iniciado por Sylar, Abril 11, 2016, 01:26:34 PM

Tema anterior - Siguiente tema
Abril 11, 2016, 01:26:34 PM Ultima modificación: Abril 11, 2016, 01:29:09 PM por Sylar
Buenos días chicos, he implementado un temporizador dentro de mi Sript pero tengo un problema al utilizarlo, directamente se me cuelga el programa al ejecutar el siguiente código. Si comento el while donde espero a que el temporizador llegue a cero no se cuelga pero, evidentemente, el temporizador no funciona. Alguien sabe cual puede ser el problema?
//Temporizador
void Update () {
   if (tempActivate == 1) {
      temp -= Time.deltaTime;
      if (temp <= 0) {
         tempActivate = 0;
         temp=3;
      }
   }


//Hago cosas, llamo al temporizador y espero.
tempActivate = 1;
while (tempActivate ==1) {
Debug.Log("Esperando por el temporizador");
   }
Debug.Log ("Pasó el tiempo");
Gracias de antemano.

El while lo bloquea todo. Tienes que hacer el loop en una coroutine. No es un sistema multitarea real, como algunos hace tiempo por aquí decían, sino que todo funciona en un solo thread.

Abril 12, 2016, 12:10:16 AM #2 Ultima modificación: Abril 12, 2016, 12:11:19 AM por kalm97
void Update(){  if(tempActive == 1){  temp -= time.deltaTime;if(temp <= 0){  tempActive = 0;}  }  if(tempActive == 0){  temp = 3;  tempActive = 1; }}Ahi creo q esta bien pruebale asi, no entendi muy bien lo que pides si esta mal losiento mi brutalidad, pero como dise iRobb el while le bloquea yo tengo asi en mi codigos de tiempo..

esque tratas de darle al while las propiedades de una coroutine , haz lo que dice iRobb   

Gracias chicos, en efecto como comentais era el whie que me bloqueaba el hilo. Error de novato

Etiquetas: