Creando el mundo de nuestro Arcade.

Un arcade de toda la vida, de los que no puedes estar quieto, no hay tiempo para pensar, tienes que moverte rápido, recolectar los tesoros y escapar de las hordas de enemigos que te persiguen. Si señor, un Arcade en el que siempre conocerás al alguien que haga mejor puntuación que tú. Un arcade para viciarte y viciar a todos tus amigos.

Esta es la definición, un poco teatralizada del juego que vamos a desarrollar en esta segunda aparte del tutorial de Desarrollo de Juegos con Unity.

En este post vamos a empezar diseñando el tablero del primer nivel, sí, por que vamos a tener más de un nivel.

Creamos el proyecto en Unity

Pantalla de creación de proyecto en Unity
Creando nuestro primer Arcade en Unity

Escogemos un nombre para nuestro proyecto, yo le he llamado: megafastball, y le damos al Create project.
Nos aparecera el IDE de Unity vacío, lo primero que vamos a hacer es importar los Assets standard que vamos a utilizar.
Vamos al menu Assets->Import Package->Prototyping, seleccionamos todos los elementos en el cuadro de dialogo pulsamos: Import.

Cuadro de dialogo que nos muestra los Assets de prototipado que podemos importar
Assets standard de prototipado

Una vez importados tendremos los Assets listos para usar en la sección de Project.

Creando el nivel del juego

Lo primero que vamos a hacer es crear el suelo, para ello usaremos uno de los Assets standard recién importados.

Incoporamos un suelo a nuestro juego.
Creando el suelo de nuestro primer nivel.

Seleccionamos FloorPrototype64x01x64 que lo encontramos en la carpeta Prefabs, dentro de Prototyping en Standard Assets, y lo arrastramos hacia la ventana #Scene. Con esto ya hemos creado una base, sobre la que se ejecutará nuestro juego. Nos habra creado un objeto en la sección Hierarchy con el nombre FloorPrototype64x01x64, le cambiamos el nombre por: Suelo. Al seleccionarlo nos mostrará sus características en la sección Inspector, modificamos los valores de su position para que este situado en 0, 0, 0 en los tres ejes. Para ello podemos editar los valores manualmente, o hacer un reset de sus variables con el menu que aparece al seleccionar la rueda dentada de la sección Transform.

Datos del Inspector del objeto Suelo
Reseteamos los datos de Transform

Vamos a darle un poco de contenido y creemos unos cuantos muros o obstáculos. Para ello usaremos por ejemplo el FloorPrototype04x01x04, lo arrastramos hacia nuestra escena, le cambiamos el nombre a Obstaculo.

Aquí vemos nuestro primer Obstáculo, o Muro…

Como se puede ver, al usar un mismo Asset standard nuestro Obstaculo tiene exactament la misma pinta que nuestro Suelo. Vamos a cambiarle el material que usa.

Inspector de nuestro Obstáculo donde se ve el material usado: NAvyFrid
El material usado es NavyGrid

Al seleccionar nuestro Obstáculo, podemos ver en la sección Inspector, en su apartado Shader, el material que esta usando. En este caso es el NavyGrid. Vamos a modificarlo, pero no queremos modificar en NavyGrid, sino crear un material nuevo. Para ello lo mejor es que dupliquemos a NavyGrid, lo seleccionamos y apretamos: Cmd+D (Ctrl+D en Windows). Le cambiamos el nombre a Material de Obstáculo. Con esto, si consultamos el Inspector de Obstáculo ya podremos ver que tiene asignado el material: Material de Obstáculos, en lugar del NavyGrid.

Los Prefab

Los Prefab son fundamentales en Unity, y su concepto es muy sencillo. Un Prefab es como una plantilla. Nosotros hemos creado un Suelo y un Obstáculo, pero es posible que usemos más de un Suelo, y 100% seguro que vamos a tener más de un Obstáculo.  Seria una buena idea tener las plantillas de estos objetos para poder crear tantos como necesitemos.
Lo primero que vamos a hacer es crear una carpeta llamada MisPrabs, en el apartado Project.

Menu para crear carpetas en Project
Creando la carpeta en Project

Una vez tengamos la carpeta creada arrastramos los objetos Obstáculo y Suelo de Hierarchy hacia nuestra carpeta recién creada.

Tenemos que arrastrar los objetos a Project para crear Prefabs,
Arrastramos Suelo y Obstáculo a la carpeta de Project.

A partir de ahora realizaremos las modificaciones a los Prefab, así se aplicaran a todos los objetos que hayamos creado con ese prefab.

Modificando el material

Trick!!!

Candado!!! Sirve para anclar!

El candado de la imagen nos permite anclar en el inspector el objeto actual. Nos va ser mu útil cuando necesitamos editar varias propiedades. Ya que no cambiaremos sin querer el contenido del inspector al seleccionar otro Objeto o Asset.

Vamos a modificar algunas de las propiedades de material que acabamos de crear, Material de Obstáculos seleccionado, modificaremos su característica Albedo: Si pulsamos sobre el cuadrado de color que tiene a su izquierda veremos que esta usando la Textura SwatchNavyAlbedo, escogemos otra, la que mas rabia nos dé. Yo he usado la SwatchMauveAlbedo. Escogerlo es tan sencillo como arrastrar la textura que queráis al recuadro de color.

El material con el nuevo Albedo en uso.

Ahora tenemos un escenario que se compone de un suelo y un Obstáculo. Vamos a añadir varios obstáculos…. Para ello arrastraremos desde los Prefabs tantos Obstáculos como queramos a la #Scene. Los distribuimos por nuestro escenario, teniendo en cuenta que tienen que estar pegados al suelo, por lo que al moverlos tendremos que fijarnos en no mover el eje Y.

Hemos arrastrado los Obstaculos desde Prefab.

No importan demasiado donde los pongáis, ni cuantos, seguramente cuando empecemos con el juego los iremos moviendo, al realizar las primeras pruebas de usuario ajustaremos el escenario de nuestro primer nivel:

¿Que hemos aprendido?

  • Importado los Assets Standard de prototipado y usado un par de ellos.
  • Hemos creado un material nuevo y asignado a  un Prefab.
  • Hemos descubierto lo que son los Prefab.
  • Hemos creado un escenario, sencillo, pero un escenario.

Next: Creando el protagonista de nuestro juego.

Podéis obtener el proyecto de Unity tal como ha quedado al seguir las instrucciones en este enlace.
megafastball-creación-escenario.

Comentarios.