¿Qué estás buscando?
Hero background image
Cómo depurar su código con Microsoft Visual Studio 2022

Unity admite una variedad de editores de código, incluidos JetBrains Rider, Atomy Microsoft Visual Studio Code y Visual Studio. Visual Studio es un paquete integrado que se instala de forma predeterminada con Unity Editor.

Este artículo proporciona sugerencias para utilizar la edición 2022 del depurador de Microsoft Visual Studio, que le permite corregir errores en su código de manera eficiente. Si desea obtener más información sobre consejos generales de productividad en Visual Studio, consulte nuestra publicación de blog "Diez formas de acelerar sus flujos de trabajo en Visual Studio".

VisualStudio
Instalación de herramientas de depuración de Visual Studio 2022

Visual Studio 2022 tiene soporte integrado para Unity, lo que le permite escribir y editar scripts fácilmente, acceder a funciones específicas de Unity y depurar el código de su juego sin salir del IDE. Proporciona funciones como finalización de código IntelliSense, resaltado de sintaxis y fragmentos de código, que le ayudan a escribir código de forma más rápida y eficiente. Además, obtiene herramientas de depuración, incluida la capacidad de establecer puntos de interrupción, revisar el código, inspeccionar variables y evaluar expresiones en tiempo de ejecución.

Visual Studio está disponible en varias versiones, incluida una versión comunitaria gratuita.

Este artículo está basado en la edición 2022 de Visual Studio. La versión 2019 tiene las mismas características, pero las capturas de pantalla diferirán un poco. De forma predeterminada, una nueva instalación de Unity instalará la versión comunitaria de Visual Studio, junto con una extensión llamada Game Development with Unity que integra Visual Studio con Unity. Si no elige instalar Visual Studio, puede obtener una copia aquí. Los detalles sobre cómo configurar Visual Studio para trabajar con Unity están disponibles aquí.

Una vez que haya instalado Visual Studio en el Editor de Unity, abra Unity > Preferencias > Herramientas externasy seleccione Visual Studio como Editor de script externo.

Adjuntar el depurador a Unity
Adjuntar el depurador de Visual Studio a Unity

Para habilitar la depuración en tiempo real del código de su proyecto mientras se ejecuta en el Editor, el depurador de Visual Studio debe conectarse al Editor. Esto permite que el depurador acceda e interactúe con el estado de ejecución de su juego. Repasemos los pasos para adjuntarlo:

Abra el proyecto de Unity que desea depurar.

En Unity, vaya a Editar > Preferencias (Windows) o Unity > Preferencias (macOS) y asegúrese de que Visual Studio esté configurado como el editor de script externo preferido. De lo contrario, selecciónelo en el menú desplegable.

Abra el script deseado en Visual Studio haciendo doble clic en el archivo de script en la vista Proyecto o mediante la opción de menú Activos > Abrir proyecto C# .

En Visual Studio, vaya a Depurar > Adjuntar Unity Debugger o haga clic en el botón Adjuntar a Unity en la barra de herramientas. Se abrirá una ventana con una lista de instancias de Unity disponibles.

Seleccione la instancia de Unity que ejecuta su proyecto (generalmente se muestra como "Editor de Unity (el nombre de su proyecto)" y haga clic en Adjuntar.

Visual Studio ahora está conectado a Unity y puede comenzar a configurar puntos de interrupción y depurar su código. Cuando el juego se ejecuta en el Editor, el depurador de Visual Studio pausará la ejecución en los puntos de interrupción, lo que le permitirá examinar el estado del juego y depurar su código, como se muestra en la siguiente sección.

Si esta es su primera sesión de depuración, verá una ventana que le presentará la opción de habilitar la depuración para la sesión actual o para todas las sesiones. Se recomienda elegir el primero, "Habilitar la depuración para esta sesión".

VisualStudio
Usando puntos de interrupción

Un punto de interrupción es un marcador en una línea de código específica. Cuando el depurador encuentra un punto de interrupción, deja de ejecutar el programa, lo que le permite inspeccionar el estado actual de las variables, los objetos y la pila de llamadas. Luego puede recorrer el código línea por línea y observar cómo cambia el estado a medida que se ejecuta el programa.

Para establecer un punto de interrupción en Visual Studio, abra el script y haga clic en el margen izquierdo del editor de código junto a la línea de código donde desea pausar la ejecución. O coloque el cursor en la línea y presione F9. Aparecerá un punto rojo, lo que indica que se ha establecido un punto de interrupción, como se muestra en la imagen superior de arriba.

Ahora ve al Unity Editor y juega. Cuando la ejecución del programa alcanza la línea con el punto de interrupción, Visual Studio se convertirá en la aplicación activa en primer plano y la ejecución del programa se detendrá en la línea del punto de interrupción. En este punto, puede utilizar las herramientas de Visual Studio para inspeccionar variables.

La opción más sencilla es pasar el cursor sobre un objeto, propiedad o variable simple. Visual Studio agregará un panel superpuesto (imagen inferior en el collage de arriba), que le permitirá ver las sobrecargas de una función, las propiedades de un objeto y los valores de una propiedad o variable.

Si la superposición tiene una flecha que apunta hacia la derecha, al hacer clic en ella se expandirá el panel para ofrecer más información sobre los valores internos de las propiedades del objeto.

Esta capacidad de examinar valores en un programa en ejecución es increíblemente útil.

Una vez que Visual Studio está adjunto a Unity, se agrega una nueva barra de herramientas a la derecha de Depurar > Adjuntar a Unity. Los cuatro botones de esta barra de herramientas hacen lo siguiente, de izquierda a derecha:

  • Continuar/Pausar la ejecución: Si el programa se está reproduciendo actualmente, aparecerá un ícono de pausa en el que puede hacer clic para pausar la ejecución. Con el programa en pausa, aparece un icono de flecha hacia la derecha, que indica que al presionar se reanudará la ejecución del programa.
  • Paso por encima: Al presionar este botón se ejecutará la línea de código resaltada y se hará una pausa nuevamente en la siguiente línea.
  • Entrar en: Si la línea de código activa incluye una función donde el código fuente es parte del proyecto, entonces este botón permite al desarrollador acceder y recorrer la función y su código.
  • Salir: Esto mueve la ejecución del programa fuera de la función actual.
VisualStudio
Puntos de interrupción condicionales

Un punto de interrupción condicional es una forma avanzada de punto de interrupción que solo detiene la ejecución si se cumple una condición específica. Esto puede resultar útil cuando desea investigar un escenario específico o cuando un problema ocurre solo bajo ciertas condiciones.

Si hace clic derecho en el punto de interrupción en la barra lateral o en la ventana del punto de interrupción del panel inferior, se mostrará el menú contextual. Elija Editar punto de interrupción. Se mostrará el cuadro de diálogo que se muestra en la imagen de arriba.

Más herramientas de depuración

En Visual Studio, la ventana del depurador proporciona varias ventanas que le ayudan a inspeccionar el estado de su aplicación mientras está en pausa en un punto de interrupción. Tres ventanas esenciales para examinar el estado de su programa son Locales, Vigilancia y Pila de llamadas. Las siguientes secciones analizan cada uno de ellos.

VisualStudio
Locales

La ventana Locales muestra las variables locales y sus valores en el alcance actual del código en ejecución. Esto incluye variables que se declaran dentro del método o bloque actual, así como argumentos del método. La ventana Locales le permite inspeccionar rápidamente los valores de las variables en el punto de interrupción actual, lo que puede resultar útil para identificar valores incorrectos o inesperados que pueden estar causando problemas en su código. Recuerde, si una línea comienza con una flecha que apunta hacia la derecha, es expandible, mientras que una flecha que apunta hacia abajo reducirá la ventana expandida.

La ventana de vigilancia
ver

La ventana Inspección le permite realizar un seguimiento de variables o expresiones específicas que desea monitorear durante el proceso de depuración. A diferencia de la ventana Locales, que muestra variables en el ámbito actual, la ventana Inspección le permite agregar variables o expresiones manualmente, independientemente de su alcance. Esto puede ser útil para rastrear el estado de ciertas variables durante la ejecución de su programa o para evaluar expresiones basadas en el estado actual de su aplicación.

Ingrese el nombre de una variable u objeto en el alcance y se agregará un panel que le permitirá inspeccionarlo. Para agregar una observación en Visual Studio, haga clic derecho en una variable o expresión en su código y seleccione Agregar observación en el menú contextual, o escriba la expresión directamente en la ventana Inspección.

La ventana Pila de llamadas
Pila de llamadas

La ventana Pila de llamadas muestra la secuencia de llamadas a métodos que condujeron al punto de interrupción actual, lo que le permite rastrear la ruta de ejecución de su programa. Cada entrada en la pila de llamadas representa una llamada a un método, con la llamada más reciente en la parte superior de la lista. Al inspeccionar la pila de llamadas, puede determinar cómo llegó su código al punto de ejecución actual, lo que le ayudará a identificar la causa raíz de los problemas o comportamientos inesperados.

Además de mostrar la secuencia de llamadas al método, la ventana Pila de llamadas le permite navegar a través de los diferentes niveles de la pila. Al hacer doble clic en una entrada de la lista, puede saltar a la línea de código correspondiente en el archivo fuente y ver las variables y parámetros locales para ese método. Esto hace que sea más fácil comprender el contexto en el que se llamó a un método particular y analizar el flujo de datos a través de su aplicación.

Configuración de compilación
Depurar una compilación

El depurador de Visual Studio no sólo es útil para el juego que se ejecuta en Unity Editor, sino también para las compilaciones. Deberá asegurarse de que la compilación incluya los datos utilizados por el depurador. Esto se hace a través de Archivo > Configuración de compilacióny, en la ventana que se muestra, elige Desarrollo, compilación y depuración de scripts (ver imagen arriba).

Seleccione Depurar > Adjuntar Unity Debugger en el menú principal para Windows, o Depurar > Adjuntar al proceso en el menú superior para MacOS.

Elija la instancia llamada Unity Player. Ahora todos los puntos de interrupción, locales y vigilancias están disponibles en la versión de desarrollo.

Escribe código limpio
Más recursos para creadores avanzados de Unity

¿Estás pensando en utilizar otro editor de código? Lea nuestro artículo sobre sugerencias para Microsoft Visual Studio Code.

Unity proporciona una serie de guías avanzadas para ayudar a los desarrolladores profesionales a optimizar el código de su juego. Cree una guía de estilo de C#: Escriba código más limpio y escalable recopila consejos de expertos de la industria sobre cómo crear una guía de estilo de código para ayudar a su equipo a desarrollar una base de código limpia, legible y escalable.

Otra guía popular entre nuestros usuarios son más de 70 consejos para aumentar la productividad con Unity. Está repleto de consejos para ahorrar tiempo y mejorar su flujo de trabajo agregado diario con Unity 2020 LTS, incluidos consejos que incluso los desarrolladores experimentados podrían haberse perdido.

Encuentre todos los libros electrónicos y artículos avanzados de Unity en el centro de mejores prácticas de Unity.

¿Te gustó este contenido?