Noticias

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

unity no responde

Iniciado por l0111, Noviembre 11, 2015, 05:54:41 PM

Tema anterior - Siguiente tema
Buenas, andaba programando un script playerController y cuando me he puesto a probarlo... unity no responde. ¿Tenéis alguna idea de por qué pasa esto? Lo he matado desde el admin de tareas y al abrirlo de nuevo ha vuelto a pasar. (Pasa al darle al play al juego)  Muchas gracias. 

Algo en el código lo ha vuelto turuta. Un loop tremendo o algo así.

Noviembre 11, 2015, 06:01:51 PM #2 Ultima modificación: Noviembre 11, 2015, 06:06:57 PM por l0111
Puede ser... ¿porque tengo un bucle dentro del Update? No habia caído, pero si unity llama a update una vez por frame, y he metido un bucle dentro.... El tema es que llevo el bucle para controlar los turnos de los personajes. Es decir, si es tu turno te mueves, y a cada vuelta del while voy cambiando el array de turnos y el contador. Edito: acabo de ver que es muerte súbita usar bucles dentro de update. Iré buscando tutoriales para varios jugadores XD

Noviembre 11, 2015, 06:42:51 PM #3 Ultima modificación: Noviembre 11, 2015, 06:47:33 PM por Antonio
Puedes usar bucles dentro del update, lo que tienes que tener en cuenta siempre, es que siempre, (SIEMPRE) haya salida para todos los casos del update.

Si estás usando un while, este tiene una condición, y dicha condición tiene que llegar a rom*** en algún momento o si no, pues eso, se quedará atascado en el bucle infinito.

 
int acciones = 0;

while (acciones < personajes.length)
{
    //Hace cosas del juego.
    acciones ++:
}
Sin la línea "acciones ++;", el juego se atascaría de nuevo porque al entrar en el bucle, nunca saldría de ahí ya que la condición siempre sería true.

 
bool EnemigoFurioso = false;

void Update ()
{
    int x = 0;

    while (x < 10)
    {
        if (EnemigoFurioso == true)
        {
            //Ataque Rugido.
            x = 23;
        }else{
            //Ataque caricia.
            x = 5;
        }
    }
}
Este ejemplo, también esta mal. Porque mientras el enemigo esté furioso, el bucle funcionará bien, pero en el momento en que el enemigo no esté furioso, la variable x será 5 constantemente, por lo que nunca será mayor o igual a 10, haciendo que siempre se esté repitiendo de nuevo... sin salida... Por eso lo de que hay que cuidar todos los casos.

Noviembre 11, 2015, 07:13:27 PM #4 Ultima modificación: Noviembre 11, 2015, 08:33:26 PM por l0111
Lo que estaba haciendo era ir cambiando de turnos dentro del update y claro, como voy cambiando hasta que alguien gana, se quedaba pillado 

Noviembre 11, 2015, 08:49:04 PM #5 Ultima modificación: Noviembre 11, 2015, 08:53:35 PM por ftejada
[quote author=l0111 date=1447260881" data-ipsquote="" data-cite="l0111" class="ipsQuote">Buenas, andaba programando un script playerController y cuando me he puesto a probarlo... unity no responde. ¿Tenéis alguna idea de por qué pasa esto? Lo he matado desde el admin de tareas y al abrirlo de nuevo ha vuelto a pasar. (Pasa al darle al play al juego)  Muchas gracias. [/quote]A mi tambien me ha empezado a pasar lo mismo en un proyecto de la nocha a la mañana. Es decir, anoche trabajé perfectamente en el proyecto, dandole al play cuantas veces quise para comprobar. Terminé de trabajar en él y lo cerré. Y esta mañana al abrirlo he sin haber modificado nada, le di al play y Unity se quedó bloqueado y no respondia. Lo intenté en varias ocasiones pero sin resultados y teniendo que cerrarlo mediante el administrador de tareas de Windows... :(

Os habéis fijado si el disco va loco cuando os pasa?

Solo cuando va a 45rpm
 
Enviado desde mi iPhone utilizando Tapatalk

Noviembre 12, 2015, 01:01:12 PM #8 Ultima modificación: Noviembre 12, 2015, 01:01:44 PM por ftejada
Cita de: iRobb date=1447273241" data-ipsquote="" data-cite="iRobb" class="ipsQuote 
 

Si claro que es el disco duro. Que otros discos hay en el PC.A ver, la primera vez que ejecutas un proyecto de Unity por primera vez (con el ordenador recién inicializado) yo diría que está creando la caché y la caché lightning que utiliza después. Desde luego a mí no me tarda 4 min. Como mucho 3/4 segundos, pero claro, mi máquina no es muy común. Luego ya si es un proyecto nuevo, otra vez.Que máquinas tenéis?

[quote author=iRobb date=1447331656" data-ipsquote="" data-cite="iRobb" class="ipsQuote">Si claro que es el disco duro. Que otros discos hay en el PC.A ver, la primera vez que ejecutas un proyecto de Unity por primera vez (con el ordenador recién inicializado) yo diría que está creando la caché y la caché lightning que utiliza después. Desde luego a mí no me tarda 4 min. Como mucho 3/4 segundos, pero claro, mi máquina no es muy común. Luego ya si es un proyecto nuevo, otra vez.Que máquinas tenéis?[/quote]Bueno, por mi parte te aseguro que creo que con el PC que tengo no deberia pasarme de tardar tanto. De hecho nunca me habia pasado hasta esta vez y solo con este proyecto. He probado a abrir otros y los abre del tiron recien iniciado Unity.

Por qué no miras cuánto te ocupa su caché? A ver si hablamos de 1g o de 10? Lo tienes en preferences.

Cita de: iRobb date=1447418063" data-ipsquote="" data-cite="iRobb" class="ipsQuotePor qué no miras cuánto te ocupa su caché? A ver si hablamos de 1g o de 10? Lo tienes en preferences.
Max Cache Size 10GB Cache size is 9,61GB Eso es lo que aparece....

Está al límite. No sé porqué lo está, que será dependiente del proyecto. Auméntala a x2 a 20gb. Cierra el proyecto y ábrelo. Yo pondría una caché que se sienta cómodo, como 3/4gb menos del utilizado. A ver si así no te colapsa siempre.

Cita de: iRobb date=1447455366" data-ipsquote="" data-cite="iRobb" class="ipsQuoteEstá al límite. No sé porqué lo está, que será dependiente del proyecto. Auméntala a x2 a 20gb. Cierra el proyecto y ábrelo. Yo pondría una caché que se sienta cómodo, como 3/4gb menos del utilizado. A ver si así no te colapsa siempre.
A ver... He estado probando lo que me decias y te comento....Lo primero que hice fue aumentar de 10GB a 20GB, y seguia el mismo problema.Despues borre la caché y volvi a cerrar el proyecto y a abrirlo y todo pareció sulucionarse. Miré la nueva caché que se creó después de borrarla y ahora es de 190mb, infinitamente inferior a los casi 10gb de antes.Hasta aquí todo solucionado o al menos eso parecia, porque hoy al abrir el proyecto por primera vez en este día, he vuelto a darle al play y ha vuelto a tardar varios minutos en iniciarse la escena. Lo primero que hice despues es volver a mirar la caché para ver si habia aumentado por algo.... pero no. Sigue con una caché utilizada de 190mb frente a los 20GB que tengo ahora de tamaño de caché maxima.... Seguiré observando pero ya me está rayando bastante esto.... y si veo algo nuevo lo comentó. De igual modo si se os ocurre alguna otra posible causa ruego me lo digais para ver si puedo solucionar dicho problema. Saludos

Etiquetas: