Noticias

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

yield return new WaitForFUNCTION??? Existe algo parecido??? xD

Iniciado por farenhai, Junio 22, 2015, 01:58:33 PM

Tema anterior - Siguiente tema
Hola!
 
Intento crear una instrucción que diga que cada vez que
 
            year ++
 
haga "x".
 
El problema del asunto es que no me sirve hacer un WaitForSeconds () a través de una corrutina, porque la variable no puede depender del tiempo (podría hacer un cálculo de cuánto tiempo se supone que tardaría en realizarse la función, pero no me parece la solución más adecuada), sino que es CADA VEZ QUE SE DA EL INCREMENTO (++, en ese frame) cuando quiero que haga la operación "x". 
 
 
Para clarificar un poco el asunto, intento que cada vez que se sucede un nuevo año (pasa de 2015 a 2016, por ejemplo) que haga tal o cual instrucción, para así evitar que cálculos innecesarios a cada frame.
 
 
¿Por dónde debería tirar? ¿Debería hacer un array con librerías System.Linq y hacer que haga una itinerancia a través de ese array? (ni por
asomo controlo Linq, pero he leído que funciona de manera más eficiente que los array genéricos y estoy -obviamente- dispuesto a aprender a manejarlos, aunque no estoy seguro de si es el camino correcto para este problemilla en concreto)
 
 
Mil gracias!!!
 
 

Junio 22, 2015, 02:01:50 PM #1 Ultima modificación: Mayo 30, 2016, 03:46:07 AM por pioj



   
      yield return new StartCoroutine( miCoroutina() );
   

[/quote]
 
 
 
Eso pone la Coroutina actual en pausa, hasta que la miCoroutina se complete.

También puedes usar el patrón observer y cada vez que hagas el year++ llamas a la función que te haga falta.
 
http://unityspain.com/tutorials/article/13-patrones-observer-y-singleton/

Wow! Menuda velocidad! ¡Gracias, Quel, por tu rapidísima respuesta!
 
Conozco la funcion de corrutina dentro de corrutina (soy un novato total, pero conozco la posibilidad). El problema es que la función year está referenciada desde otro script (uno concreto que es el que se encarga de realizar el calendario), desde el cual deberán beber otros múltiples scripts.
 
De esta manera, no entiendo bien cómo incluir esto dentro de la segunda corrutina sin estar creando un cálculo paralelo -que podría presentar un desfase con la función year original: quiero decir, no creo que crear un year por cada script sea lo adecuado... ¿o sí?
 
Por este motivo buscaba una potencial alternativa a StartCoroutine dentro de StartCoroutine (que ignoro si existe, pues busco y, en verdad no encuentro como hacer :S ...)
 
Lamento si esto resulta demasiado noob por mi parte

Cita de: zeus1200 date=1434975856También puedes usar el patrón observer y cada vez que hagas el year++ llamas a la función que te haga falta.
 
http://unityspain.com/tutorials/article/13-patrones-observer-y-singleton/
gracias Zeus!
 
Ya mismo estoy echándole un ojo... a ver si lo consigo!!
 
Gracias a ambos.
 
Saludos!!!

Junio 22, 2015, 07:25:10 PM #5 Ultima modificación: Junio 22, 2015, 07:39:38 PM por H@pesend

int year
{
   get{}
   set
   {
     Hazalgo()
   }
}


Finalmente, conseguí resolver con el Notification Center. Me queda pendiente profundizar en el tema de los "delegates", que parece muy muy interesante también.
 
Gracias a todos por vuestros consejos!
 
Un saludo!

¿Podéis poner algunos por aquí las diferencias en Rendimiento, a la hora de usar Delegates vs NotificationCenter?  Muchas gracias.


Tampoco entiendo el problema de monitorizar una variable propia.... no es necesario tanto jaleo...

Etiquetas: