¿Cuáles son los tipos de errores más comunes en programación?
La programación es un arte lleno de desafíos, y uno de ellos es lidiar con errores. Los errores en código son inevitables, pero conocerlos puede ayudarte a manejarlos con soltura. En el ámbito de la programación, principalmente en Unity, se distinguen tres tipos de errores:
Errores de compilación: Suceden cuando el código no puede ser traducido por el compilador. A menudo, estos errores se deben a errores tipográficos o sintácticos. Unity no podrá leer el script y te impedirá iniciar el juego.
Errores en tiempo de ejecución: Se presentan cuando tu juego ya se está ejecutando. Aunque el código compila correctamente, algo inesperado ocurre durante su ejecución, como intentar utilizar un recurso que no está disponible.
Errores de lógica: Estos son los más sutiles y, a menudo, los más temidos. Se originan cuando el código ejecuta correctamente pero no produce el resultado esperado, debido a una lógica incorrecta en la programación.
¿Cómo resolver errores en Unity de manera efectiva?
La consola de Unity es una herramienta vital cuando experimentamos con scripts. Aquí te comparto algunos pasos y recomendaciones basadas en experiencias previas al trabajar con Unity para manejar y resolver errores:
Usa la consola para identificar errores: Cuando encuentres un error, la consola te ofrecerá detalles valiosos sobre qué línea del script podría estar fallando. Haz clic sobre los mensajes para obtener más información.
Comprende los mensajes de error: La mayor parte de los mensajes de error están en inglés. Si este no es tu idioma fuerte, considera usar un traductor para entender mejor la descripción del error.
Verifica errores tipográficos en métodos: Verifica la escritura de métodos o funciones que estos se escriben con la primera letra en mayúscula. Por ejemplo, el método Debug.Log debe estar escrito correctamente para funcionar.
Playlist en caso de errores: Si ves que Unity se detiene al intentar reproducir tu juego, revisa si el botón de "pausa de error" está activado. Desactívalo para continuar depurando el juego.
Mensajes de depuración específicos: Personaliza los mensajes de depuración agregando tus iniciales o un identificador único para poder filtrar tus mensajes propios en la consola y no perderte entre los de tus compañeros.
¿Cómo programar un agradecimiento en Unity?
La programación de scripts para simular comportamientos específicos en Unity puede ser una tarea divertida. Por ejemplo, imagina programar a los pasajeros de un autobús para que agradezcan al conductor. Aquí te presento un ejemplo básico de cómo podríamos avanzar en esto:
publicclassPasajeros:MonoBehaviour{voidStart(){// Probabilidad del 30% de que un pasajero diga graciasif(Random.Range(0f,1f)<0.3f){// Imprime un mensaje de agradecimiento en la consola Debug.Log("Gracias",this);}}}
Añadir script a los prefabs
Para aplicar este comportamiento a tus pasajeros, debes asegurarte de que cada prefab del pasajero tenga este script adjunto. Al reproducir el juego, cada pasajero tendrá una probabilidad del 30% de expresar agradecimiento visible en la consola con un clic sobre el mensaje correspondiente.
Mejorar depuración con scripts personalizados
Evita el "ruido" en la consola eliminando mensajes de depuración innecesarios de tus script antes de la entrega. Sin embargo, si te encuentras en un entorno compartido, filtra tus mensajes personalizados usando búsquedas específicas por nombres para trabajar eficientemente.
Este es solo el comienzo de las posibilidades con Unity y sus funcionalidades. No te desanimes frente a errores; en realidad, son oportunidades para crecer. ¡Sigue practicando y te convertirás en un maestro del desarrollo en juegos!
Por si todavía no lo sabías, escribir código == tener muchos escurridizos hermosos errores, principalmente pertenecientes a estas 3 categorías:
Errores de compilación: "I don't speak humano"
-Dentro de tus "strings" puedes inventar palabras o ezcrivir azi, pero al usar **palabras reservadas, llamar métodos o nombres de variables/objetos previamente definidos,**estamos hablando en código, y el lenguaje no tolera errores de tipado.
En cuyo caso Unity simplemente no "entendería" lo que quisiste decir, no sabe cómo interpretarlo y por lo tanto no compila el código, no arranca.
Generalmente se debe a los famosos TYPOS: errores tipográficos, alguna teclita de más o de menos que se nos pasa; o errores ortográficos por falta de familiaridad con el inglés.
Errores en tiempo de ejecución:
En este caso el código arranca y el juego se ejecuta, pero puede llegar cierta circunstancia para la cual el código no prevee respuestas/alternativas y Unity no sabe qué hacer.
El juego se desestabiliza, o pausa.
chanchanchaaan
Horrores de lógica
Los más difíciles de encontrar.
Se deben a alguna falla o efecto imprevisto desde el planteamiento/calculo que quien programa aplica en cierto segmento de código.
Algunos de estos bugs pueden sobrevivir al testing más riguroso. Y es normal que suceda, incluso con el juego lanzado a producción; los errores se van resolviendo a medida que aparecen mediante actualizaciones y lanzamiento de parches, por ejemplo.
Consola socorrista
Ejemplo del bus:
Escribimos un Script para que al iniciar, los pasajeros digan gracias al chofer en un 30% de probabilidad.
En código: condicionamos el llamado del mensaje dentro de un if, que evaluará que el valor aleatorio surgido de un método Random.Range(entre 0, y 1f(floating/decimal)) -que implica una distribución uniforma- sea menor a 0.3.
Nota: el Debug.Log recibe un 2do parámetro en su sobrecarga, que permite señalar el componente o GameObject allí especificado al dar click en el mensaje en consola.
En este caso llamamos this, o sea, el pasajero que dijo gracias.
• Pero antes de aplicarlo debemos
enlazar el script a cada pasajero.
Por suerte estos derivan de un prefab, con lo cual,
al añadir el script como componente de este, todos los pasajeros lo reciben.
Los errores! en consola
- llevan un ícono distinto al de los mensajes.
Si son de compilación:
- no nos permitirán arrancar el juego
nos pedirán que arreglemos el problema describiendo brevemente la naturaleza y número de línea donde fue hallado.
Traducir en caso de no entender inglés. (ej: Google Translate).
también...
Podemos encontrar errores en tiempo de ejecución,
- en cuyo caso el juego no se interrumpe
NOTA: A MENOS QUE EL BOTÓN Error Pause DENTRO DE LA CONSOLA, ESTÉ ACTIVO.
○ Este botón aplica pausa en toda la escena y sus objetos al momento de dispararse un error, para facilitar su hallazgo y tratamiento.
Si bien estos errores no frenan el juego, es recomendable analizarlos y resolverlos cuanto antes ya que pueden traer problemas encadenados debido a sus dependencias con otros objetos.
Higiene de consola
-Es importante que quitemos nuestros mensajes de debugeo por respeto al espacio de trabajo compartido.A veces se nos pasa y
Una buena práctica para filtrar el caos es
añadir nuestro nombre en la definición del parámetro del mensaje; algo como
[…]
Debug.Log("[Menganito] Gracias", this);
[…]
- Entonces podemos escribir [Menganito] en la barra de búsqueda de la consola, y aparecerán solamente nuestros mensajes (suponiendo que, lamentablemente, nos llamemos Menganito).
al ser un curso de introducción, debería usar un editor de código o IDE que permita tener autocompletado y con información detallada que hace cada función o método, para que se explique y se sepa cual usar de acuerdo a cada contexto.
una pregunta como abres esa consola?
esa es una consola de preferencia de la Profe Ruth puedes utilizar la consola Visual Studio
Like si te acordaste de Cyberpunk 2077 😂
Super profe me preguntaba si hay alguna forma de conectar contigo esque estoy desarrollando algo me gustaria tu ayuda.