Introducción a Unity

0
9450

En este tutorial vamos a introducir Unity como plataforma para el desarrollo de videojuegos. Vamos a analizar su interfaz y a hacer un pequeño videojuego donde podremos analizar sus características principales.

Índice de contenidos

1. Introducción

En este tutorial emplearemos Unity para crear y diseñar nuestro primer videojuego. Unity es un motor de videojuegos multiplataforma utilizado para desarrollar videojuegos para distintos dispositivos: PC, consolas, dispositivos móviles y entornos web. Unity se encuentra tanto en versión de pago (Unity Pro) como en versión gratuita. La versión gratuita nos permite desarrollar y publicar nuestros videojuegos pero con algunas restricciones o funciones no diponibles.

El objetivo de este tutorial es usar Unity para hacer un videojuego muy simple que nos sirva como introducción a esta herramienta. El videojuego consistirá en ir recogiendo pelotas con nuestro personaje principal. Por cada pelota que recojamos, la puntuación del personaje se irá aumentando. Es un objetivo muy sencillo pero con el que aprenderemos los conocimientos básicos para hacer cosas más complejas. ¡Allá vamos!

2. Entorno

El tutorial se ha realizado usando el siguiente entorno:

  • Hardware: Portátil MacBook Pro Retina 15′ (2.5 Ghz Intel Core I7, 16GB DDR3).
  • Sistema Operativo: Mac OS Yosemite 10.10
  • Entorno de desarrollo: Unity 5.1.1

3. Creación del proyecto

Una vez se tenga Unity instalado, lo ejecutamos. Acto seguido aparecerá una pantalla donde nos permitirá abrir un proyecto o crear un nuevo proyecto. Seleccionamos la opción de crear nuevo proyecto. Esta opción, nos pedirá la ruta donde queremos guardar nuestro proyecto, su nombre y el tipo de configuración inicial. Para este ejemplo, vamos a hacer un videojuego con la configuración de 3D. Una vez hayamos introducido toda la información necesaria, pulsamos en el botón de crear proyecto.

4. Análisis de la interfaz de Unity

La interfaz de Unity está compuesta por una serie de pestañas totalmente configurables que nos muestran distintos tipos de información. En el menú Window, podemos acceder a cada una de las pestañas y podemos cambiar la disposición de dichas pestañas en el editor. En general, es el comportamiento típico de cualquier entorno de desarrollo por lo que es probable que estéis acostumbrados. A continuación, vamos a detallar cada una de las pestañas más importantes:

  • Scene. En esta pestaña es donde gestionaremos la construcción de nuestro videojuego. Podremos manipular los GameObjects (objetos básicos del juego sobre los que se basa Unity) para realizar ciertas acciones sobre ellos como pueden ser: mover, redimensionar o rotar. Dentro de la escena, se cuenta con los siguientes accesos directos:
    • Mano (Q). Arrastrar el ratón para mover la cámara.
      • +alt. Arrastrar el ratón para mover la vista de la cámara sobre el pivote.
      • +ctrl. Arrastrar el ratón para hacer zoom.
    • Mover (W). Se podrá mover un GameObject sobre alguno de los ejes.
    • Rotar (E). Se podrá rotar un GameObject sobre alguno de los ejes.
    • Escalar (R). Se podrá escalar un GameObject sobre alguno de los ejes.
  • Game. En esta pestaña se mostrará el resultado de la ejecución de la escena actual.
  • Console. En esta pestaña se mostrarán las trazas del videojuego junto con los posibles mensajes que nos proporcione el editor.
  • Hierarchy. En esta pestaña se mostrarán todos los GameObjects que estarán presentes en la escena actual.
  • Project. En esta pestaña se mostrará el sistema de carpetas del proyecto. Contendrá funciones de búsqueda sobre el sistema de carpetas.
  • Inspector. Pestaña fundamental del editor. En ella se mostrarán los detalles de todos los componentes del GameObject que se tenga seleccionado.

Por último, para ejecutar nuestro videojuego, bastará con pulsar el botón de reproducir situado en la parte superior.

unity-introduction-img1

5. Importación de los Assets principales

Unity cuenta con una serie de recursos que podemos importar a nuestros proyectos. En este caso, para la realización de este ejemplo, vamos a importar los siguientes: Characters, Cameras y Environment. Para importar los assets lo que debemos hacer es dirigirnos al menú Assets > Import package. De la lista que sale, seleccionamos los mencionados anteriormente.

Unity también cuenta con una enorme comunidad que realiza numerosos recursos y los pone a disposición de la gente en la Asset Store. Algunos son gratuitos y otros son de pago. Siempre viene bien echar un ojo a esta tienda ya que hay cosas interesantes que nos podrán evitar algunos quebraderos de cabeza y bastante trabajo.

6. Creación del terreno

Lo primero que realizaremos será la creación del terreno sobre el que vamos a construir nuestro videojuego. Para ello, accederemos al menú GameObject ­> 3D Object ­> Terrain. Esto generará un Terrain que se podrá ver en las pestañas de Hierarchy y de Project. Seleccionando el Terrain de la pestaña de Hierarchy, aparecerán en la pestaña de Inspector los componentes que tiene asociados. A continuación, vamos a detallar el componente Terrain:

  • Elevación del terreno. En esta pestaña podremos generar elevaciones o eliminarlas (manteniendo shift pulsado).
  • Altura del terreno. En esta pestaña podremos generar elevaciones con una altura determinada o establecer la altura por defecto del terreno.
  • Suavizar terreno. En esta pestaña podremos suavizar los detalles generados con alguno de los procesos anteriores.
  • Textura del terreno. En esta pestaña podremos definir un conjunto de texturas con las que seremos capaces de texturizar el terreno.
  • Árboles. En esta pestaña podremos incorporar árboles a nuestro terreno.
  • Detalles del terreno. En esta pestaña podremos definir un conjunto de detalles que podremos añadir al terreno de nuestro. Dichos detalles podrán ser: flores o césped.
  • Configuración del terreno. En esta pestaña podremos definir los detalles principales del terreno.

En este punto, deberemos haber generado un terreno con: elevaciones, zonas hundidas, árboles, césped y configurar el viento para que el césped se mueva al ejecutar la escena. En este caso, como el juego tiene como objetivo coger una serie de pelotas, podemos hacer una celda rodeada por montañas con una única salida como punto inicial. A continuación, muestro un pequeño ejemplo:

unity-introduction-img2

7. Generación del cielo

Por defecto, el nuevo proyecto que se crea con Unity tiene un Skybox predefinido. El Skybox es el material que le queremos dar al cielo de nuestro videojuego. Si quisiésemos cambiar este Skybox, bastaría con dirigirnos al menú Window > Lightning > Scene. Ahí, tendríamos la opción de incorporar el Skybox que nosotros prefiramos.

8. Dando luz a nuestro videojuego

Por defecto, el nuevo proyecto que se crea con Unity tiene ya incorporado a la escena un Directrional Light. Este componente iluminará toda la escena. Existen distintos tipos de luces en Unity en función del efecto que queramos conseguir: Point Light, Spot Light, Directional Light y Area Light. Para crear este tipo de componentes, bastará con dirigirnos al menú GameObject > Light y seleccionar la que deseemos.

9. Creación del personaje principal

Para añadir al personaje principal del videojuego bastará con añadir el modelo Third Person Controller a la escena. Para añadir este elemento en la escena bastará con buscarlo en la carpeta Standard Assets > Characters > Third Person Character > Prefabs y arrastrarlo a la escena (si no tienes esta carpeta quizás debas volver al punto 2 de este tutorial). Por último, bastará con colocarlo en el punto que nosotros consideremos oportuno. Será necesario configurar el tag como Player en el inspector.

Necesitaremos añadir también una cámara que siga el movimiento del personaje y sea lo que veamos en nuestro videojuego. Para ello, añadimos, del mismo modo que hemos hecho para el personaje, la cámara FreeLookCameraRig que se encuentra en Standard Assets > Cameras > Prefabs. Necesitamos configurar el objetivo al que tiene que mirar la cámara, para ello, bastará con arrastrar el modelo de Third Person Controller al campo target que tiene la cámara en el inspector. De esta forma, la cámara estará ligada al movimiento del personaje.

unity-introduction-img3

Podemos también jugar con las opciones de configuración que ofrecen tanto el personaje como la cámara que hemos añadido. Para ver estas opciones, bastará con seleccionar el objeto en la pestaña de jerarquí y, automáticamente, nos cargará su información en la pestaña de inspector.

10. Programando la funcionalidad básica

A continuación, vamos a comenzar a crear la funcionalidad principal de nuestro videojuego.

10.1. Programando el sistema de puntuación

Para la gestión de la puntuación del usuario bastará con crear un GameObject vacío. Para ello, nos dirigiremos al menú GameObject ­> Create Empty. A este GameObject le llamaremos ScoreController. El objeto podrá estar situado en cualquier punto de la escena ya que servirá únicamente como controlador.

La única función de este componente será la de almacenar la puntuación del usuario y mostrarla en pantalla. Para ello, crearemos un nuevo script llamado ScoreController al que añadiremos la siguiente funcionalidad:

using UnityEngine;
using System.Collections;

public class ScoreController : MonoBehaviour {

	public int score;

	void OnGUI() {
		GUI.Box(new Rect(0, 0, 150f, 150f), "Tu puntuacion es: " + this.score);
	}

	public void addPoint() {
		++this.score;
	}
}

Con este código, tendremos métodos para aumentar la puntuación del usuario y poder almacenarla, del mismo modo que mostraremos la puntuación en la pantalla.

Por último, tenemos que añadir el script que hemos realizado al componente ScoreController. Para ello, arrastramos el script sobre el componente en la jerarquía de la escena.

10.2. Programando las pelotas

Para las pelotas, añadiremos a la escena esferas situándolas donde nosotros queramos. Para añadir las esferas, bastará con dirigirnos al menú GameObject > 3D Object > Sphere.

A continuación, pasaremos a desarrollar la funcionalidad de las pelotas. Para ello, se creará el script BallController.cs. En el momento en el que el personaje se acerque a las pelotas, aumentará su puntuación y desaparecerán. Para ello, añadiremos el siguiente código:

using UnityEngine;
using System.Collections;

public class BallController : MonoBehaviour {

	public ScoreController scoreController;

	void OnTriggerEnter(Collider other) {
		if (other.gameObject.tag.Equals ("Player")) {
			this.scoreController.addPoint();
			Destroy(this.gameObject);
		}
	}
}	

El método OnTriggerEnter se activará siempre que un Collider entre dentro del trigger. Para activar esta opción, es necesario marcar la casilla de Is Trigger dentro del Mesh Collider de la pelota. Este Mesh Collider se deberá haber añadido anteriormente mediante el menú Component > Physics.

11. Conclusiones

Como hemos visto, en pocos pasos podemos tener nuestro propio videojuego. En este tutorial, hemos visto los aspectos básicos para la creación de videojuegos. Con estas herramientas (y un poco de imaginación) podremos hacer videojuegos mucho más complejos.

12. Referencias

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad