Contexto



Para estas alturas ya tienes algunas bases de diseño de videojuegos, también has instalado las herramientas que usarás a lo largo del curso. ¡Por fin estás listo para empezar a crear algunos juegos!

A partir de este punto empezarás a sumergirte a conceptos y técnicas de programación, por lo que te aconsejamos que tengas a la mano información sobre Unity. Recuerda que las técnicas que usarás a lo largo de los temas son las usuales para programación orientada a objetos, por lo que no debes tener problemas para seguir los ejercicios. Se te brindarán los conceptos correctos y se explicará lo que está sucediendo en el código por medio de comentarios, que te sugerimos también uses para guiarte después.

Explicación


5.1 GameObjects

En toda plataforma de videojuegos se utilizan objetos para representar al player, entorno y la escena en general.

En Unity tenemos los GameObjects u Objetos de juego, estos son todo lo que vemos en una escena, por lo tanto, cada objeto en tu videojuego es un GameObject.

Los GameObjects están conformados por componentes o components. Cada GameObject tiene componente de transformación, posición, escala y rotación. Así mismo se pueden añadir componentes desde el botón de Add Component, tales como efectos, texto, mallas, o desde el menú principal Component cuentas con las siguientes opciones de componentes.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

 

5.2 ¿Qué son los scripts para un videojuego?

 

Un script es un guion en el cual escribimos órdenes y procedimientos para los objetos dentro del editor. Es todo aquello que ocurre en un videojuego tal y como lo dice un guion y en el momento que se le indica. Estos scripts brindan una funcionalidad diferente dependiendo de lo que se mande a ejecutar y a cuál objeto se le coloque.

La programación de scripts es esencial en todos los juegos, ya que los scripts se necesitan para crear respuesta a entradas del jugador y asegurar que los eventos del juego se ejecuten.

Por ejemplo, el personaje va caminando y de repente todo empieza a derrumbarse, tu personaje cae al suelo y se levanta. Tras eso, tienes otra vez el control y puedes volver a jugar. Todo ese proceso es un script. Algo implementado en el juego que tiene que pasar.

 

5.3 Lenguajes de programación para Unity

 

Los scripts en Unity los puedes escribir en alguno de los lenguajes que Unity soporta de forma nativa: C#, JavaScript y UnityScript.

Haz clic en cada elemento.

C#

Es un lenguaje de programación orientado a objetos. Según Miles (2016), en el mundo del C# todo es un objeto. Los objetos dentro de un programa de C# pueden ser desde un simple número hasta un videojuego entero.

C# es un lenguaje estandarizado por Microsoft. Con este lenguaje se quiso mejorar a los dos anteriores de los que deriva el C y el C++. Este lenguaje le brinda un soporte especial a Unity y es el más utilizado por sus usuarios.

Es un lenguaje de programación orientado a objetos y eventos. JavaScript se diseñó con una sintaxis similar al C. Es liviano, multiplataforma y es interpretado, esto quiere decir que no se compila para poder ejecutarse.


Muy similar en sintaxis a JavaScript, pero con importantes diferencias. Por ejemplo, UnityScript implementa clases, mientras que JavaScript maneja objetos. A partir del 11 agosto del 2017 Unity anunció oficialmente que este lenguaje sería descontinuado, al igual que el lenguaje Boo, que fue descontinuado en el año 2014.

 

5.4 Creando scripts

Los scripts se crean dentro del entorno de Unity. Para crear un nuevo script se utiliza el menú Create o seleccionando desde el menú principal Assets/Create/C#Script.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

 

Para modificar un script se requiere de un editor de texto, puedes utilizar MonoDevelop, Visual Studio o algún otro editor de texto de tu agrado.

 

Anatomía de un archivo script

Al hacer doble clic en un asset tipo script en Unity, éste se abrirá en el editor de texto predeterminado. Depende del editor de texto que tengas instalado será el que abra por defecto, los más usuales son MonoDevelop o Visual Studio. Es recomendable utilizar Visual Studio, ya que contiene las actualizaciones de C#. Para seleccionar el editor de tu agrado selecciona del menú principal>Edit>Preferences>External tools.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

 

Los contenidos iniciales del archivo se verán como lo siguiente:

 

using UnityEngine;
using System.Collections;

public class MainPlayer : MonoBehaviour {

    // Use this for initialization
    void Start () {
    
    }
    
    // Update is called once per frame
    void Update () {
    
    }
}

Las primeras tres líneas:

using System.Collections;
using UnityEngine;

La palabra “using” se utiliza para declarar las librerías que se utilizarán para generar las directivas de nuestro script. Cada librería contiene instrucciones o directivas que podemos utilizar en los scripts de nuestro juego.
Por default se utilizará la librería de “Collections” dentro de la librería “System” y la librería “UnityEngine”.

La forma en que se utilizan es escribiendo la palabra “script” seguido de la directiva, (en este caso la librería que se va a utilizar) seguido de un punto y coma (“;”).

Seguimos con el nombre de la clase:

public class MainPlayer : MonoBehaviour {

    // Use this for initialization
    void Start () {
    
    }
    
    // Update is called once per frame
    void Update () {
    
    }
}    

La primera línea declara la clase principal de tu script y la convierte en una clase pública para que pueda ser utilizada por otros scripts de nuestro juego al hacerle referencia. El nombre, en este caso MainPlayer, será el nombre que le asignas a tu script al crearlo en Unity.

MonoBehaviour es la clase base de la que derivan todos los scripts de Unity, es decir, todas las otras clases están encapsuladas dentro de ella y no se podrá agregar programación a Unity si esta clase no está definida.

Una vez definida esta clase se abren corchetes y dentro de ellos se introducirá todo el código de tu script. Por default se incluyen dos funciones: Start y Update.

    void Start () {
    
    }

Start es, como su nombre lo indica, una función que será llamada cuando inicie el juego o cada vez que aparezca el objeto. Regularmente se usa para asignar valores por default a una variable o para asignar el comportamiento inicial de un GameObject.

El término void nos indica que es un método vacío y, por tanto, sólo va a ejecutar el código dentro de él sin retornar ningún valor.

Y por último está la función Update:

    void Update () {
    
    }

Update es una función que será ejecutada dentro de cada cuadro de tu juego de manera indefinida. Se utiliza principalmente para agregar movimiento, crear relojes y recibir entradas de información (incluidos clics del mouse, teclado y swipes en móvil).

 

Hello World

Un Hello World es un programa simple que, al ser corrido, muestra en pantalla el mensaje: Hello World. Este programa se ha convertido en la introducción a un nuevo programador en un sinfín de lenguajes.

Siendo uno de los programas más simples, es perfecto para ilustrar la sintaxis del lenguaje.

Haz clic en cada elemento.

Empezaremos creando un nuevo proyecto y lo llamaremos Hello World. Asegúrate de seleccionar el modo de 2D.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

 

Utilizaremos el menú Assets /Create /C# Script desde el menú principal para crear un nuevo script al que llamaremos Main.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

Dentro de los corchetes principales, creados por public class Main: MonoBehaviour {}, escribiremos el siguiente código:

    void OnGUI () {
    	GUILayout.Label(“Hello World”);
    }                          
                          

Tu archivo de script debe de verse del siguiente modo:


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

 

Una vez realizado tu script, arrástralo a la cámara de tu proyecto de Unity y haz clic en el botón de play de la barra de herramientas para ver el mensaje de “Hello World” en la pantalla de tu juego.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

 

¡Felicidades! ¡Creaste tu primer script de C# en Unity! En tu vista de escena deberías de ver lo siguiente:


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

 

Cierre


Como aprendiste en el tema, la programación de scripts es la base de todos los videojuegos, sin ellos los videojuegos no tendrían funcionamiento.

Gracias a la buena aceptación de Unity por parte de los usuarios a través de los años, es más sencillo generar nuevos scripts para desarrollar un videojuego desde cero.

Así que ten paciencia y comienza por lo básico.

Checkpoint


Asegúrate de:

  • Comprender qué es un GameObject.
  • Conocer los lenguajes de programación de Unity.
  • Entender para qué sirven los scripts.

Referencias


  • Hocking, J. (2015). Unity in Action: Multiplatform Game Development in C# with Unity 5. Estados Unidos: Manning Publications Co.
  • Miles, R. (2016). Begin to code with C#. Estados Unidos: Allite books.
  • Lukosek, G. (2016). Learning C# by Developing Games with Unity 5.x. Reino Unido: Packt Publishing.
  • Unity. (2016). Creando y usando scripts. Recuperado de https://docs.unity3d.com/es/current/Manual/CreatingAndUsingScripts.html