Usando la consola de una forma muy pro
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.
public class Pasajeros : Monobehaviour { void Start () { If (Random.Range(0, 1f) < 0.3) { Debug.Log("Gracias!", this) } } }
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,
<h5>al añadir el script como componente de este, todos los pasajeros lo reciben.</h5>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).
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?