Introducción a la creación de juegos con Unity en Visual Studio para Mac

Se aplica a:yesVisual Studio para Mac noVisual Studio

Unity es un motor de juego que permite desarrollar juegos en C#. En este tutorial se muestra cómo empezar a desarrollar y depurar juegos de Unity con Visual Studio para Mac y la extensión Visual Studio for Mac Tools for Unity junto con el entorno de Unity.

Visual Studio for Mac Tools for Unity es una extensión gratuita instalada con Visual Studio para Mac. Permite a los desarrolladores de Unity aprovechar las características de productividad de Visual Studio para Mac, lo que incluye la excelente compatibilidad de IntelliSense, las características de depuración, etc.

Objetivos

  • Obtenga información sobre el desarrollo de Unity con Visual Studio para Mac

Requisitos previos

Destinatarios

Este laboratorio está destinado a desarrolladores familiarizados con C#, aunque no se requiere una experiencia profunda.

Tarea 1: Creación de un proyecto básico de Unity

  1. Inicie Unity. Si se le pide, inicie sesión.

  2. Seleccione Nuevo.

    New button in unity

  3. Establezca el Nombre del proyecto en "UnityLab" y seleccione 3D. Seleccione Create project (Crear proyecto).

    create new project screen

  4. Ahora está viendo la interfaz predeterminada de Unity. Tiene la jerarquía de la escena con objetos del juego a la izquierda, una vista en 3D de la escena en blanco en la parte central, un panel de archivos de proyecto en la parte inferior y el Inspector y los Servicios a la derecha. Hay mucho más que eso, pero estos son algunos de los componentes más importantes.

    blank unity interface

  5. Para los desarrolladores nuevos en Unity, todo lo que se ejecuta en la aplicación existe en el contexto de una escena. Un archivo de escena es un archivo único que contiene todo tipo de metadatos sobre los recursos usados en el proyecto para la escena actual y sus propiedades. Al empaquetar la aplicación para una plataforma, la aplicación resultante termina por ser una colección de una o más escenas, además de cualquier código dependiente de la plataforma que se agregue. Puede tener tantas escenas como quiera en un proyecto.

  6. La nueva escena solo tiene una cámara y una luz direccional. Una escena requiere una cámara para que algo sea visible y un cliente de escucha de audio para que algo sea audible. Estos componentes están conectados a un elemento GameObject.

  7. Seleccione el objeto Cámara principal en el panel Jerarquía.

    main camera object highlighted in hierarchy pane

  8. Seleccione el panel Inspector en el lado derecho de la ventana para revisar sus propiedades. Las propiedades de la cámara incluyen información de transformación, segundo plano, tipo de proyección, campo de visión, etc. También se ha agregado un componente de cliente de escucha de audio de forma predeterminada, que básicamente representa el audio de la escena desde un micrófono virtual conectado a la cámara.

    inspector pane

  9. Seleccione el objeto Luz direccional. Este proporciona luz a la escena para que componentes como los sombreadores sepan cómo representar objetos.

    direction light object highlighted

  10. Use el Inspector para ver que incluye propiedades comunes de iluminación como tipo, color, intensidad, tipo de sombra, etc.

    looking at properties in inspector pane

  11. Es importante señalar que los proyectos de Unity son un poco diferentes a sus homólogos de Visual Studio para Mac. En la pestaña Proyecto de la parte inferior, haga clic con el botón derecho en la carpeta Recursos y seleccione Mostrar en Finder.

    reveal in finder context action

  12. Los proyectos contienen las carpetas Recursos, Biblioteca, ProjectSettings y Temp, como se puede ver. Pero la única que se muestra en la interfaz es la carpeta Recursos. La carpeta Biblioteca es la caché local para los recursos importados; contiene todos los metadatos de los recursos. La carpeta ProjectSettings almacena las opciones que se pueden configurar. La carpeta Temp se usa para los archivos temporales de Mono y Unity durante el proceso de compilación. También hay un archivo de solución que se puede abrir en Visual Studio para Mac (UnityLab.sln aquí).

    assets in finder

  13. Cierre la ventana Finder y vuelva a Unity.

  14. La carpeta Recursos contiene todas las imágenes, el código, el audio, etc. de los recursos. Ahora está vacía, pero cada archivo que se incluya en el proyecto irá aquí. Esta es siempre la carpeta de nivel superior de Unity Editor. Agregue y quite archivos siempre a través de la interfaz de Unity (o Visual Studio para Mac) y nunca a través del sistema de archivos directamente.

    assets folder in unity

  15. GameObject es fundamental para el desarrollo en Unity, ya que prácticamente todo deriva de ese tipo, incluidos los modelos, las luces, los sistemas de partículas, etc. Agregue un nuevo objeto Cubo a la escena por medio del menú GameObject > Objeto 3D > Cubo.

    cube object in scene

  16. Eche un vistazo rápido a las propiedades del nuevo tipo GameObject y vea que tiene un nombre, una etiqueta, una capa y una transformación. Estas propiedades son comunes para todos los tipos GameObjects. Además, se han asociado varios componentes al Cubo para proporcionar funcionalidad necesaria que incluye un filtro de malla, un colisionador de cuadros y un representador.

    game object properties

  17. Cambie el nombre del objeto Cubo, que tiene el nombre "Cubo" de forma predeterminada, a "Enemigo" . Asegúrese de presionar Entrar para guardar el cambio. Este va a ser el cubo enemigo de este juego sencillo.

    cube object rename property

  18. Agregue otro objeto Cubo a la escena mediante el mismo proceso anterior y póngale el nombre "Jugador" .

    rename second cube object

  19. Etiquete también el objeto de jugador "Jugador" (vea el control desplegable Etiqueta justo debajo del campo de nombre). Lo vamos a usar en el script de Enemigo para ayudar a localizar el objeto de juego Jugador.

    tagging the player object

  20. En la vista Escena, retire el objeto Jugador del objeto Enemigo a lo largo del eje Z con el mouse. Para moverse a lo largo del eje Z, seleccione y arrastre el cubo por su panel rojo hacia la línea azul. Puesto que el cubo se encuentra en el espacio 3D, pero solo se puede arrastrar en 2D cada vez, el eje en el que se arrastra es especialmente importante.

    scene view showing cube

  21. Mueva el cubo hacia abajo y a la derecha a lo largo del eje. Esto actualiza la propiedad Transform.Position del Inspector. Asegúrese de arrastrar a una ubicación de forma similar a lo que se muestra aquí para facilitar los pasos posteriores del laboratorio.

    moving one cube along the axis

  22. Ahora puede agregar algún código para controlar la lógica de Enemigo de modo que persiga a Jugador. Haga clic con el botón derecho en la carpeta Recursos de la ventana Proyecto y seleccione Crear > Script de C#.

    C# script context action

  23. Póngale el nombre "EnemyAI" al nuevo script de C#.

    C# script

  24. Para asociar scripts a objetos del juego, arrastre el script recién creado al objeto Enemigo en el panel Jerarquía. Ahora, ese objeto usa los comportamientos de este script.

    highlighting showing adding script to game object

  25. Seleccione Archivo > Guardar escenas para guardar la escena actual. Asígnele el nombre "MyScene" .

Tarea 2: Trabajo con Visual Studio for Mac Tools for Unity

  1. La mejor forma de editar código de C# es usar Visual Studio para Mac. Puede configurar Unity para usar Visual Studio para Mac como controlador predeterminado. Seleccione Unity > Preferencias.

  2. Seleccione la pestaña Herramientas externas. En la lista desplegable External Script Editor, seleccione Examinar y luego Applications/Visual Studio.app. Si ya existe una opción Visual Studio, simplemente selecciónela.

    external tools tab in preferences

  3. Unity está ahora configurado para usar Visual Studio para Mac para la edición de scripts. Cierre el cuadro de diálogo Preferencias de Unity.

    Visual Studio selected in preferences

  4. Haga doble clic en EnemyAI.cs para abrirlo en Visual Studio para Mac.

    Enemy asset selected in unity

  5. La solución de Visual Studio es sencilla. Contiene una carpeta Recursos (la misma de Finder) y el script EnemyAI.cs creado anteriormente. En proyectos más sofisticados, probablemente la jerarquía sea diferente a la que se ve en Unity.

    Solution Window in Visual Studio for Mac

  6. EnemyAI.cs está abierto en el editor. El script inicial solo contiene códigos auxiliares para los métodos Start y Update.

  7. Reemplace el código inicial de Enemigo por el código siguiente.

    public class EnemyAI : MonoBehaviour
    {
        public float Speed = 50;
        private Transform _playerTransform;
        private Transform _myTransform;
    
        void Start()
        {
            var player = GameObject.FindGameObjectWithTag("Player");
            if (!player)
            {
                Debug.LogError(
                    "Could not find the main player. Ensure it has the player tag set.");
            }
            else
            {
                _playerTransform = player.transform;
            }
            _myTransform = this.transform;
        }
    
        void Update()
        {
            var moveAmount = Speed * Time.deltaTime;
            _myTransform.position = Vector3.MoveTowards(_myTransform.position,
                _playerTransform.position, moveAmount);
    
            if (_myTransform.position == _playerTransform.position)
            {
                _myTransform.position = Vector3.back * 10;
            }
        }
    }
    
  8. Eche un vistazo rápido al comportamiento sencillo de Enemigo definido aquí. En el método Start, se obtiene una referencia al objeto Jugador (por su etiqueta) y su transformación. En el método Update, que se llama en cada fotograma, Enemigo se mueve hacia el objeto Jugador. Las palabras clave y los nombres usan codificación en colores para facilitar la comprensión del código base de Visual Studio para Mac.

  9. Guarde los cambios en el script de Enemigo en Visual Studio para Mac.

Tarea 3: Depuración del proyecto de Unity

  1. Establezca un punto de interrupción en la primera línea de código del método Start. Puede hacer clic en el margen del editor en la línea de destino o colocar el cursor en la línea y luego presionar F9.

    setting breakpoint in Visual Studio for Mac

  2. Seleccione el botón Iniciar depuración o presione F5. Con esto se compila el proyecto y se asocia a Unity para su depuración.

    start button in Visual Studio for Mac

  3. Vuelva a Unity y seleccione el botón Ejecutar para iniciar el juego.

    run button in unity

  4. Se debe alcanzar el punto de interrupción para poder usar las herramientas de depuración de Visual Studio para Mac.

    breakpoint hit in Visual Studio for Mac

  5. En la ventana Variables locales, busque este puntero, que hace referencia a un objeto EnemyAI. Expanda la referencia y vea que puede examinar los miembros asociados, como Velocidad.

    The Locals window in Visual Studio for Mac

  6. Quite el punto de interrupción del método Start del mismo modo que se agregó: ya sea haciendo clic en el margen del editor o seleccionando la línea y presionando F9.

    Removing a breakpoint in Visual Studio for Mac by selecting it

  7. Presione F10 para ir a la primera línea de código donde se encuentre el objeto Jugador con una etiqueta como parámetro.

  8. Mantenga el cursor del mouse sobre la variable player dentro de la ventana del editor de código para ver sus miembros asociados. Incluso puede expandir la superposición para ver las propiedades secundarias.

    debugging window in Visual Studio for Mac editor

  9. Presione F5 o el botón Ejecutar para continuar con la ejecución. Vuelva a Unity para ver el cubo Enemigo acercarse repetidamente al cubo Jugador. Es posible que necesite ajustar la cámara si no está visible.

    scene playing in unity

  10. Vuelva a Visual Studio para Mac y establezca un punto de interrupción en la primera línea del método Update. Se debe alcanzar inmediatamente.

    Removing a breakpoint in Visual Studio for Mac

  11. Imagine que la velocidad es demasiado rápida y quiere probar el impacto del cambio sin reiniciar la aplicación. Busque la variable Velocidad en la ventana Automático o Variables locales, cámbiela a "10" y presione Entrar.

    adjusting variables in the locals window

  12. Quite el punto de interrupción y presione F5 para reanudar la ejecución.

  13. Vuelva a Unity para ver la aplicación en ejecución. El cubo Enemigo ahora se mueve a una quinta parte de la velocidad original.

    unity window with running application

  14. Detenga la aplicación de Unity al volver a hacer clic en el botón Reproducir.

    stopping the unity app

  15. Vuelva a Visual Studio para Mac. Detenga la sesión de depuración al hacer clic en el botón Detener.

    stopping the debug session in Visual Studio for Mac

Tarea 4: Examen de las características de Unity en Visual Studio para Mac

  1. Visual Studio para Mac proporciona acceso rápido a documentación de Unity en el editor de código. Coloque el cursor en algún lugar del símbolo Vector3 dentro del método Update y presione ⌘ Comando + ' .

    selecting method in visual studio for mac editor

  2. Se abre una nueva ventana del explorador para la documentación de Vector3. Cierre la ventana del explorador cuando esté satisfecho.

    browser window opens to documentation

  3. Visual Studio para Mac también proporciona algunos asistentes para crear rápidamente clases de comportamiento de Unity. En el Explorador de soluciones, haga clic con el botón derecho en Recursos y seleccione Agregar > Nuevo MonoBehaviour.

    new monobehaviour context action

  4. La clase recién creada proporciona código auxiliar para los métodos Start y Update. Después de la llave de cierre del método Update, comience a escribir "onmouseup" . A medida que escribe, observe que IntelliSense de Visual Studio rápidamente sugiere el método que planea implementar. Selecciónelo en la lista Autocompletar proporcionada. Rellena un código auxiliar del método automáticamente, incluidos los parámetros.

    intellisense in Visual Studio for Mac

  5. Dentro del método OnMouseUp, escriba "base." para ver todos los métodos base disponibles que se pueden llamar. También puede examinar las diferentes sobrecargas de cada función con la opción de paginación de la esquina superior derecha del control flotante de IntelliSense.

    exploring overloads in Visual Studio for Mac

  6. Visual Studio para Mac también permite definir fácilmente nuevos sombreadores. En el Explorador de soluciones, haga clic con el botón derecho en Recursos y seleccione Agregar > Nuevo sombreador.

    new shader action in Visual Studio for Mac

  7. El formato de archivo del sombreador obtiene tratamiento completo de color y fuente para facilitar su lectura y comprensión.

    syntax highlighting

  8. Vuelva a Unity. Puede ver que, dado que Visual Studio para Mac funciona con el mismo sistema de proyectos, los cambios realizados en cualquier lugar se sincronizan automáticamente con los demás. Ahora es fácil usar siempre la mejor herramienta para la tarea.

    unity asset panel

Resumen

En este laboratorio ha aprendido cómo empezar a crear un juego con Unity y Visual Studio para Mac. Vea https://unity3d.com/learn para obtener más información sobre Unity.