Uso de Visual Studio Tools para Unity

En esta sección aprenderá a utilizar las características de productividad e integración de Visual Studio Tools para Unity y cómo utilizar al depurador de Visual Studio para el desarrollo en Unity.

Abrir scripts de Unity en Visual Studio

Una vez que Visual Studio se ha establecido como editor externo para Unity, al hacer doble clic en un script desde el editor de Unity se inicia o se cambia automáticamente a Visual Studio y se abre el script elegido.

También puede abrir Visual Studio sin ningún script abierto en el editor de código fuente si se selecciona el menú Recursos > Abrir proyecto de C# en Unity.

Screenshot of the Open C# project in Visual Studio.

Screenshot of the Open C# project in Visual Studio for Mac.

Acceso a la documentación de Unity

Puede acceder rápidamente a la documentación de creación de scripts de Unity desde Visual Studio. Si Visual Studio Tools para Unity no encuentra localmente la documentación de la API, intentará encontrarla en línea.

  • En Visual Studio, resalte o coloque el cursor sobre la API de Unity sobre la que quiere obtener información y, después, presione Ctrl+Alt+M, Ctrl+H
  • También puede usar el menú Ayuda > Referencia de API de Unity en lugar del enlace de teclado.

Screenshot of the Unity API Reference menu in Visual Studio.

  • En Visual Studio para Mac, resalte o coloque el cursor sobre la API de Unity sobre la que quiere obtener información y, después, presione Cmd+'
  • También puede usar el menú Ayuda > Referencia de API de Unity en lugar del enlace de teclado.

Screenshot of the Unity API Reference menu in Visual Studio for Mac.

IntelliSense para mensajes de API de Unity

La integridad del código de IntelliSense facilita la implementación de mensajes de la API de Unity en scripts de MonoBehaviour y ayuda a conocer cómo funciona esta API. Para usar IntelliSense para mensajes de Unity:

  1. Coloque el cursor en una nueva línea dentro del cuerpo de una clase que se derive de MonoBehaviour.

  2. Comience a escribir el nombre de un mensaje de Unity, como OnTriggerEnter.

  3. Una vez que haya escrito las letras "ontri", aparece una lista de sugerencias de IntelliSense.

Screenshot of using IntelliSense in Visual Studio.

  1. La selección de la lista se puede cambiar de tres maneras:

    • Con las teclas de flecha arriba y abajo.

    • Al hacer clic con el mouse en el elemento deseado.

    • Al seguir escribiendo el nombre del elemento deseado.

  2. IntelliSense puede insertar el mensaje de Unity seleccionado, incluidos todos los parámetros necesarios:

    • Al presionar Tab.

    • Al presionar Entrar.

    • Al hacer doble clic en el elemento seleccionado.

Screenshot of the Insert Unity message from IntelliSense in Visual Studio.

Asistente de scripting de MonoBehavior de Unity

Puede usar al asistente de MonoBehavior para ver una lista de todos los métodos de API de Unity e implementar rápidamente una definición vacía. Esta característica, especialmente con la opción Generar comentarios de método habilitada, es útil si todavía está aprendiendo lo que está disponible en la API de Unity.

Para crear definiciones vacías de método MonoBehavior con el asistente de MonoBehavior, siga estos pasos:

  1. En Visual Studio, coloque el cursor donde quiera que se inserten los métodos y, después, presione Ctrl+Mayús+M para iniciar el asistente de MonoBehavior. En Visual Studio para Mac, presione Cmd+Mayús+M.

  2. En la ventana Crear métodos de script, marque la casilla junto al nombre de cada método que quiere agregar.

  3. Use la lista desplegable Versión de marco de trabajo para seleccionar la versión que desee.

  4. De forma predeterminada, los métodos se insertan en la posición del cursor. Como alternativa, puede elegir insertarlos después de cualquier método que esté ya implementado en la clase si cambia el valor de la lista desplegable Punto de inserción por la ubicación que desee.

  5. Si quiere que el asistente genere los comentarios de los métodos que ha seleccionado, marque la casilla Generar comentarios de métodos. Estos comentarios están diseñados para ayudarlo a entender cuando se llama al método y cuáles son sus responsabilidades generales.

  6. Seleccione el botón Aceptar para salir del asistente e insertar los métodos en el código.

Screenshot of the monobehavior wizard dialog in Visual Studio.

Screenshot of the monobehavior wizard dialog in Visual Studio for Mac.

Explorador de proyectos de Unity

El Explorador de proyectos de Unity muestra todos los archivos de proyecto y directorios de Unity de la misma manera que el Editor de Unity. La experiencia es diferente a navegar por los scripts de Unity con el Explorador de soluciones de Visual Studio normal, que los organiza en proyectos y una solución generada por Visual Studio.

  • En el menú principal de Visual Studio, seleccione Ver > Explorador de proyectos de Unity. Método abreviado de teclado: Alt+Mayús+E

Screenshot of the Unity Project Explorer window.

  • En Visual Studio para Mac, el Panel de solución se comporta así de forma automática cuando se abre un proyecto de Unity.

Depuración de Unity

Visual Studio Tools para Unity permite depurar scripts de editor y juego del proyecto de Unity mediante el potente depurador de Visual Studio.

Depuración en el editor de Unity

Iniciar depuración

  1. Conecte Visual Studio a Unity haciendo clic en el botón Reproducir llamado Attach to Unity (Asociar a Unity), o use el método abreviado de teclado F5.

Screenshot of the Attach to Unity button in Visual Studio.

  1. Conecte Visual Studio a Unity al hacer clic en el botón Reproducir o escriba Comando + Entrar o F5.

Screenshot of the Play button in Visual Studio for Mac.

  1. Vaya a Unity y haga clic en el botón Reproducir para ejecutar el juego en el editor.

Screenshot of the Play button in Unity on Windows.

Screenshot of the Play button in Unity on macOS.

  1. Cuando se ejecuta el juego en el editor de Unity mientras se está conectado a Visual Studio, cualquier punto de interrupción detectado detiene la ejecución del juego y muestra la línea de código donde el juego alcanza el punto de interrupción en Visual Studio.

Detener depuración

Haga clic en el botón Detener en Visual Studio o use el método abreviado de teclado MAYÚS+F5.

Screenshot of the Stop button in Visual Studio.

Haga clic en el botón Detener de Visual Studio para Mac o presione Mayús + Comando + Entrar.

Screenshot of the Stop button in Visual Studio for Mac.

Para obtener más información sobre la depuración en Visual Studio, consulte la documentación de Primer vistazo al depurador de Visual Studio.

Asociar a Unity y reproducir

Para mayor comodidad, puede cambiar el botón Attach to Unity (Asociar a Unity) al modo Attach to Unity and Play (Asociar a Unity y reproducir).

  1. Haga clic en la pequeña flecha abajo junto al botón Attach to Unity (Asociar a Unity).

  2. Seleccione Attach to Unity and Play (Asociar a Unity y reproducir) en el menú desplegable.

    Screenshot of the Attach and play button in Visual Studio.

El botón Reproducir pasa a llamarse Attach to Unity and Play (Asociar a Unity y reproducir). Al hacer clic en este botón o usar el método abreviado de teclado F5 ahora se cambia automáticamente al editor de Unity y se ejecuta el juego en el editor; también se asocia el depurador de Visual Studio.

El inicio de la depuración y la reproducción del editor Unity se pueden llevar a cabo en un solo paso directamente desde Visual Studio para Mac eligiendo la configuración Asociar a Unity y jugar.

Screenshot of the Attach to Unity and Play button in Visual Studio for Mac.

Nota:

Si la depuración se inició con la configuración Asociar a Unity y reproducir, el botón Detener también detendrá el editor de Unity.

Depuración de las compilaciones del reproductor de Unity

Puede depurar las compilaciones de desarrollo de los reproductores de Unity con Visual Studio.

Habilitación de la depuración de scripts en un reproductor de Unity

  1. En Unity, seleccione Archivo > Configuración de compilación para abrir la configuración de compilación.

  2. En la ventana de configuración de compilación, marque las casillas Development Build (Compilación de desarrollo) y Script Debugging (Depuración de scripts).

    Screenshot of the Unity build settings for debugging.

Selección de una instancia de Unity a la que asociar el depurador

  • En el menú principal de Visual Studio, elija Depurar > Asociar depurador de Unity.

    Screenshot of the Attach Unity Debugging Window in Visual Studio.

    En el cuadro de diálogo Seleccionar instancia de Unity se muestra información sobre cada instancia de Unity a la que puede conectarse.

    Screenshot of the Choose an instance of Unity to connect to window in Visual Studio.

    Proyecto Nombre del proyecto de Unity que se está ejecutando en esta instancia de Unity.

    Equipo Nombre del equipo o dispositivo en el que se está ejecutando esta instancia de Unity.

    Tipo Editor si esta instancia de Unity se ejecuta como parte del Editor de Unity; Reproductor si esta instancia de Unity es un reproductor independiente.

    Puerto Número de puerto del socket UDP a través del que se está comunicando esta instancia de Unity.

Importante

Puesto que Visual Studio Tools para Unity y la instancia de Unity se comunican a través de un socket de red UDP, el firewall puede requerir la aprobación para permitirlo. Si se requiere, puede que aparezca un mensaje y tendrá que autorizar la conexión para que VSTU y Unity puedan comunicarse.

Selección de una instancia de Unity que no aparece en la lista

Si tiene un reproductor de Unity conocido que no aparece en la lista, puede usar el botón IP de entrada en la ventana Seleccionar instancia de Unity. Escriba la dirección IP y el puerto del reproductor de Unity en ejecución para conectar el depurador.

Para facilitar que siga depurando ese reproductor sin tener que especificar la dirección IP y el puerto cada vez, habilite la configuración Usar destinos de depuración guardados en el menú Herramientas > Opciones > Tools para Unity > General.

Screenshot of the Use saved debug targets setting.

Visual Studio mostrará los destinos de depuración guardados como opción en el botón Asociar a Unity.

Screenshot of the Saved debug target setting.

  • En Visual Studio para Mac, en el menú superior, elija Ejecutar > Asociar al proceso.
  • En el cuadro de diálogo Asociar al proceso, seleccione la opción Depurador de Unity en el menú desplegable Depurador de la parte inferior.
  • Seleccione una instancia de Unity en la lista y haga clic en el botón Asociar.

Depurar un archivo DLL en un proyecto de Unity

Muchos desarrolladores de Unity están escribiendo componentes de código como archivos DLL externos para que la funcionalidad que desarrollan pueda compartirse fácilmente con otros proyectos. Visual Studio Tools para Unity facilita la depuración sin problemas del código de estos archivos DLL con otro código de su proyecto de Unity.

Nota

En este momento, Visual Studio Tools para Unity solo admite archivos DLL administrados. No admite la depuración de archivos DLL de código nativo, como los escritos en C++.

Tenga en cuenta que el escenario descrito aquí supone que tiene el código fuente, es decir, que está desarrollando o reutilizando su propio código o que tiene el código fuente de una biblioteca de terceros y planea implementarlo en su proyecto de Unity como un archivo DLL. Este escenario no describe la depuración de un archivo DLL del que usted no dispone el código fuente.

Para depurar un proyecto de archivo DLL administrado utilizado en su proyecto de Unity

  1. Agregue su proyecto DLL existente a la solución de Visual Studio generada por Visual Studio Tools para Unity. Con menor frecuencia, puede que inicie un nuevo proyecto DLL administrado para que contenga componentes de código en su proyecto de Unity. De ser así, puede agregar un nuevo proyecto DLL administrado a la solución de Visual Studio en su lugar.

    Screenshot of the Add > Existing Item menu.

    En ambos casos, Visual Studio Tools para Unity mantiene la referencia del proyecto, aunque tenga que volver a generar los archivos de proyecto y solución, para que solo tenga que realizar estos pasos una vez.

  2. Haga referencia al perfil de .NET Framework de Unity correcto en el proyecto DLL. En Visual Studio, en las propiedades del proyecto DLL, establezca la propiedad Framework de destino en la versión de .NET Framework de Unity que esté usando. Esta es la Biblioteca de clases base de Unity que coincide con la compatibilidad con la API que su proyecto tiene definido como destino, como las bibliotecas de clases base completas, micro o web de Unity. Esto impide que el archivo DLL llame a métodos de .NET Framework que existan en otros niveles de compatibilidad o marcos de trabajo, pero que podrían no existir en la versión de .NET Framework de Unity que esté utilizando.

Nota

Lo siguiente solo es necesario si usa el entorno de ejecución heredado de Unity. Si usa el nuevo entorno de ejecución de Unity, ya no necesita usar los perfiles 3.5 dedicados. Use un perfil .NET 4.x compatible con su versión de Unity.

Screenshot of the selecting target framework for a project in Visual Studio.

  1. Copie el archivo DLL en la carpeta Activos del proyecto de Unity. En Unity, son activos los archivos que se empaquetan e implementan junto con la aplicación de Unity para que se puedan cargar en tiempo de ejecución. Puesto que los archivos DLL se vinculan en tiempo de ejecución, se deben implementar como recursos. Para que los archivos DLL se implementen como activos, el Editor de Unity necesita que se coloquen en la carpeta Activos del proyecto Unity. Puede hacer esto de dos formas:

    • Modificar la configuración de compilación del proyecto DLL para que incluya una tarea integrada a posteriori que copie los archivos DLL y PDB de salida de la carpeta de salida en la carpeta Activos del proyecto de Unity.

    • Modificar la configuración de compilación del proyecto DLL para establecer la carpeta de salida como la carpeta Activos del proyecto de Unity. Tanto los archivos DLL como PDB se colocarán en la carpeta Activos.

    Los archivos PDB son necesarios para la depuración porque contienen símbolos de depuración de los archivos DLL y asignan el código del archivo DLL a su forma de código fuente. Si tiene como destino el entorno de ejecución heredado, Visual Studio Tools para Unity usará información de los archivos DLL y PDB para crear un archivo DLL.MDB, que es el formato de símbolo de depuración utilizado por el motor de scripting heredado de Unity. Si tiene como destino el entorno de ejecución nuevo y usa archivos PDB portátiles, Visual Studio Tools para Unity no intentará realizar ninguna conversión de símbolo, porque el entorno de ejecución de Unity nuevo puede consumir archivos PDB portátiles de manera nativa.

    Puede encontrar más información sobre la generación de PDB aquí. Si tiene como destino el entorno de ejecución nuevo, asegúrese de que la opción "Información de depuración" esté establecida en "Portátil" para así generar de manera adecuada archivos PDB portátiles. Si tiene como destino el entorno de ejecución heredado, debe usar "Full" (Completo).

  2. Depure el código que ha creado. Ahora puede depurar el código fuente de archivos DLL junto con el código fuente del proyecto de Unity y utilizar todas las características de depuración a las que está acostumbrado, como los puntos de interrupción y ejecutar código paso a paso.

Métodos abreviados de teclado

Puede acceder rápidamente a las herramientas de Unity para la funcionalidad de Visual Studio mediante el uso de los métodos abreviados de teclado. Este es un resumen de los métodos abreviados disponibles.

Comando Acceso directo Nombre de comando de acceso directo
Abrir el asistente de MonoBehavior Ctrl+Mayús+M EditorContextMenus.CodeWindow.ImplementMonoBehaviours
Abrir el Explorador de proyectos de Unity Alt+Mayús+E View.UnityProjectExplorer
Acceder a la documentación de Unity Ctrl+Alt+M, Ctrl+H Help.UnityAPIReference
Adjuntar a depurador de Unity (reproductor o editor) sin valor predeterminado Debug.AttachUnityDebugger

Si no le gusta el valor predeterminado, puede cambiar las combinaciones de teclas de método abreviado. Para obtener información sobre cómo cambiarlo, vea Identificar y personalizar métodos abreviados de teclado en Visual Studio.

Comando Acceso directo Nombre de comando de acceso directo
Abrir el asistente de MonoBehavior Cmd+Mayús+M EditorContextMenus.CodeWindow.ImplementMonoBehaviours
Acceder a la documentación de Unity Cmd+' Help.UnityAPIReference

Si no le gusta el valor predeterminado, puede cambiar las combinaciones de teclas de método abreviado. Para obtener información sobre cómo cambiarlo, consulte Personalización del IDE.