[Tutorial] Depuración de Código en Unity (Visual Studio y MonoDevelop)


Para los que uséis Visual Studio con Unity, os puede interesar saber que se puede integrar el Debugger, al igual que se puede hacer con MonoDevelop.

En este tutorial voy a explicar cómo integrar y cómo usar el depurador de código, que puede ahorrar mucho tiempo cuando nos acostumbramos a usarlo.

Instalación


1.- Descargar e instalar Visual Studio Tools for Unity. La versión enlazada es la de 2013, pero cuando este artículo envejezca puede ser razonable instalar la más reciente (la versión 2015 no ha salido aún).

2.- En Unity -> Build Settings, marcar las casillas Development Build y Script Debugging. Por cierto, desde Unity 5 tenemos el Profiler gratuito. Es muy buena herramienta para medir el rendimiento de nuestro proyecto. Os aconsejo que lo probéis.


3.- Importar el paquete Visual Studio Tools a Unity. Si no lo encontramos en el menú Assets -> Import Package, podemos localizarlo en la ruta:
C:\Program Files (x86)\Microsoft Visual Studio Tools for Unity\201X
El archivo tiene la extensión .unitypackage, por lo que podemos pinchar dos veces para importarlo a nuestro proyecto.

4.- Nos creará un menú para estas utilidades. Abrimos Visual Studio desde Unity.



Uso

1.- Colocar Breakpoints: Son puntos donde podemos detener la ejecución del programa. Elegimos cualquier línea de código (normalmente la que nos interesa. No usar declaraciones de funciones), pinchamos en el marco a la izquierda del número de línea, y veremos que aparece un punto rojo. Cuando el programa llegue a ese punto, se detendrá.



2.- Cuando tenemos los breakpoints preparados, pulsamos el botón Attach to Unity o F5. También tenemos la opción en el menú DEBUG. Nos pedirá que seleccionemos la instancia de Unity que se está ejecutando. La seleccionamos y le damos a aceptar. Visual Studio pasará a modo DEBUGGER.
En MonoDevelop, sólo tenemos que pulsar PLAY

3.- Pulsar Play en Unity y probar el juego. Cuando el flujo llegue al breakpoint, Unity pasará a modo PAUSA (aunque no es como si hubiésemos pulsado el botón de pausa, sino que está detenida su ejecución desde Visual Studio).

4.- La siguiente imagen es del MonoDevelop, pero en Visual Studio es igual (bueno un poco más completo quizás). Una vez que el programa está detenido, podemos observar el contenido de las variables y los atributos en ese momento de la ejecución.
Con esta herramienta podemos comprobar fácilmente cuántas veces se entra en una función y en qué momento y qué valor tienen los atributos de las clases en un momento dado.


5.- Una vez que estamos detenidos en un breakpoint podemos pulsar el botón continue para continuar con la ejecución normal. A parte, podemos detener la depuración en el menú DEBUG -> Stop.

6.- Breakpoints condicionales. Podemos hacer que el programa se detenga sólo cuando cierta variable tiene un valor. Para ello, fuera del modo DEBUG, pulsamos con el botón derecho en el breakpoint y vamos a sus propiedades. Esto nos permite aún más flexibilidad, ya que podemos controlar casos límite.



Espero que os sirva para depurar vuestros juegos este verano. Normalmente en proyectos pequeños no hace falta usar un debugger, pero cuando va creciendo llega un momento en el que vamos a tardar mucho menos encontrando errores de esta manera.



Comentarios

  1. Hola, podrias explicar como se hace lo mismo en ubuntu?

    ResponderEliminar
  2. Hola. Hace muchos años que no usu Ubuntu, no me atrevería a dar una explicación, lo siento.

    ResponderEliminar

Publicar un comentario