Intro
Ayer empecé a desarrollar un pequeño prototipo, sencillo y escalable para desconectar un poco dado que los últimos días han sido de infarto trabajando a contra reloj para portear Air HockeyZ para Ps Vita.
El prototipo en cuestión se trata de un pequeño shoot’em up que es una mezcla (muy humilde) de Ikaruga, space invaders e Imagic Atlantis (un juego de Atari2600 en el que tenías que proteger la ciudad de Atlantis de naves enemigas).
El caso es que estaba bastante contento con los progresos que estaba haciendo con el scripting hasta que no sé porqué la cosa empezó a fallar gracias a los bugs del nuevo Unity5…
Síntomas:
– Crear carpetas o prefabs y que no salgan en el Editor. Al principio crees que ha fallado algo, la vuelves a crear con el mismo nombre y no puedes porque está en la carpeta que Unity no lo visualiza porque se ha perdido el archivo *.meta.
– Problemas con el Canvas UI y scripts relacionados. Después de que me pasara lo del punto anterior, que no hice demasiado caso tras el mosqueo inicial, acabé el proyecto, lo testeee en Android a ver si lo podía correr con fluidez y me fui al sobre pero esta mañana PAM! errores en la UI. Después he importado el CrossInput package y ya ha petado todo el proyecto con su ventanita de enviar bug, etc Se habían perdido los scripts y petaba todo. Si se eliminaba toda la UI, el proyecto iba pero era borrar el Canvas, hacer uno nuevo y PAM! lo mismo, por lo que el proyecto estaba petado por varias partes…
Solución
Tras perder un par de horas de mi vida maldiciendo y buscando algo de info al final he creado un proyecto nuevo, copiado la carpeta assets y empezado de nuevo.
En mi caso todos los links estaban rotos y tenía que volver a asignar datos uno a uno lo cual era una paliza… así que he vuelto al proyecto petado, he mirado los prefabs que no petaban, he hecho un package con todos ellos y los he pasado al proyecto nuevo borrando previamente los que tenía.
Al hacerlo da unos warning de ID que después desaparecen nada más compilar. Lo malo de éste método es que, al menos en mi caso, los tamaños, rotaciones y escalados son incorrectos por lo que hay que ajustarlos de nuevo… un palo si ésto pasa cuando el proyecto está avanzado pero personalmente prefiero eso antes que asignar los scripts, etc
Finalmente no hay que olvidarse de crear nuevamente las tags y las layers en caso que creárais nuevas…
Todo eso lleva un tiempo precioso, pero en mi caso es lo único que he podido hacer para solucionarlo…
Si a alguien le ha pasado espero que le sirva. Y también espero que Unity vaya corrigiendo este tipo de errores, como el que desaparece la iluminación de la escena cada vez que se recarla la escena… otra putadita que me estuvo rallando unos cuantos días…