Depuración en unity

 


Veremos como depurar en unity con Debug y Debug.Log, esto ayuda a tener control en el código hacer el trabajo mas sencillo; al encontrar, por ejemplo, un error.


Debug.Log() 

Este formato muestra un mensaje simple que deseemos en la consola. Funciona para conocer el estado, por ejemplo, una variable en tiempo real o de una instancia o cualquier elemento que deseemos mostrar. 


En código:


Debug.LogWarning()

Este formato muestra un mensaje de advertencia que queramos en consola. Funciona para advertirnos de algún problema no principal, es decir, algún error pequeño que no afecte directamente al juego.

En código:



Debug.LogError()

Este formato muestra un mensaje de error que deseamos en consola. Funciona para advertirnos de un fallo importante en el juego. Además podemos pausar el juego al aparecer el primer error, esta opción se activa en consola en: 'Error pause'.

En código:

Debug.LogAssertion()

Este formato muestra si una operación lógica es falsa o verdadera.
Código:

Debug.LogFormat()

Los anteriores están bien, pero son muy "estáticos", muy duros poco dinámicos. Este formato muestra un mensaje tradicional, pero se puede editar su presentación: como el color (ejemplo 1). Además podemos formatear la información dentro de el (ejemplo 2).

Ejemplo 1 (color):


Código ejemplo 1:


Ejemplo 2 (formato):


Código ejemplo 2:


.LogWarningFormat .LogErrorFormat .LogAssertionFormat

También tenemos una versión de formato para cada tipo de depuración, son iguales que el 'format' tradicional pero cambiado a las alertas, errores, etc.


Debug.Assert()

Este formato muestra si falla una operación lógica (muy parecido a LogAssertion). Por ejemplo queremos revisar si la vida es diferente a 100: entonces si se cumple no mostrara ningún error en consola, si no, mostrara un error: 'Assertion failed'.

Código:

Debug.LogException(e, this)

Este formato va muy de la mano con un trycatch, este mostrará un "error" no esperado. Pero, este formato consume mas recursos, así que hay que usarlo con moderación.

Código:

Debug.DrawLine()

Este formato dibuja una línea ocupacional, de un punto A a uno B, excelente para revisar distancias u otro elemento de interés, también se puede poner la duración, es opcional.

Código:


Debug.DrawRay()

Este formato es parecido al anterior, pero no ocupa espacio y se define es su dirección.

Código:




Hemos visto varias formas de hacer depuración en unity, aunque no son los únicos, me parecen que son los mas importantes. 

Espero que les sea de utilidad y ahora conozcan algo nuevo.



Bibliografía

https://www.youtube.com/watch?v=vy7WXLArj4U

Unity documentation