Introducción
Este es el primer artículo del curso de programación básica en C# orientada a Unity. Vamos a ver lo necesario para empezar a estudiar programación básica y poder hacer que nuestros programas se ejecuten.
En qué consiste programar para Unity
Unity es un motor gráfico, esto quiere decir que muchos aspectos técnicos en el desarrollo de un videojuego ya vienen resueltos, dejándonos a nosotros la parte artística y la lógica de los elementos.
En general vamos a trabajar con Unity y un software auxiliar para edición de Scripts, en este curso vamos a utilizar Visual Studio como editor de código.
En un proyecto en Unity lo que haremos es crear objetos dentro de una escena, estos objetos se conocen como GameObjects (lee este artículo para saber más sobre GameObjects en Unity) y asignarle componentes que harán que se comporten como queremos, es decir componentes que se encargan de darle la lógica al objeto.
Algunas componentes vienen predefinidas en el motor gráfico, pero otras deberemos crearlas utilizando Scripts y conocimientos de programación.
Creación de un Script en Unity
Para programar en Unity tendremos que crear un nuevo Script, esto lo podemos hacer desde la pestaña «Project» haciendo clic derecho en alguna de las carpetas de la parte izquierda de la pestaña Project o en el explorador de archivos de la parte izquierda de la pestaña Project, luego vamos a «Create».
En la figura 1 podemos ver la ventana que nos permite crear un nuevo Script (Segunda opción, «C# Script» debajo de Folder).
Al crear un nuevo Script se nos pedirá ingresar un nombre, para esto le damos un nombre representativo de la función que va a desempeñar, por convención se comienza con mayúscula y utilizando la notación CamelCase (o InFixCaps) que consiste en quitar los espacios y colocar mayúsculas para separar las palabras, como se ilustra en la figura 2.
Luego si hacemos doble clic en el Script se nos abrirá el editor de código y podremos ver y editar el contenido.
Asignación de Scripts en Unity
Una vez que hemos creado el Script podremos asignarlo a uno o más GameObjects de la jerarquía.
Para hacer esto seleccionamos el o los GameObjects a los que queremos asignar el Script, luego tomamos el Script de la pestaña Project y lo arrastramos al inspector.
También podemos usar el botón Add Component y buscar el Script en la lista.
Ejecución de Scripts
Para que nuestro Script se ejecute al hacer clic en el botón de Play en principio solo necesitamos que no contenga errores así Unity lo puede compilar, que esté asignado a un GameObject de la jerarquía y que este GameObject no esté deshabilitado.
Con esto basta para que la función Start se ejecute automáticamente al iniciar el juego, Update se llame en cada frame del juego y FixedUpdate cada 20 milisegundos.
Como vemos en la figura 3, al crear un nuevo Script por defecto nos trae definidas las funciones Start y Update.
Imprimir mensajes en consola
Vamos a usar la consola para mostrar los resultados de nuestros programas y comprobar que están funcionando correctamente.
La instrucción que nos permitirá escribir un mensaje en la consola de Unity es:
Debug.Log(«Este es un mensaje»);
Dentro de los paréntesis podremos poner textos, variables y crear un mensaje concatenando elementos.
Para ver en detalle la utilización de la instrucción Debug.Log te invito a leer este artículo.
En la figura 7 podemos ver un ejemplo de cómo utilizar Debug.Log.
Si el Script está asignado a un GameObject que no está deshabilitado, al pulsar Play el juego comenzará a correr y en un determinado momento se ejecutará la función Start del Script, que contiene la instrucción para imprimir el mensaje en pantalla.
En la figura 9 vemos que hay una pestaña llamada «Console», si entramos en ella podremos ver mucha más información.
Conclusión
En este primer artículo hemos visto algunas cosas básicas que necesitamos saber para programar en Unity, por ejemplo cómo crear Scripts, como asignarlos a los objetos y hacer que se ejecuten.
La instrucción Debug.Log nos permite imprimir mensajes en consola y de esa forma testear si nuestros programas están haciendo lo que deben hacer.