sábado, 13 de agosto de 2016

El No-Video-Tutorial de Unity

Si eres como yo, odias los video-tutoriales, tienes que poner pausa para seguirlos y regresar el video si te perdiste de algo, a veces sin atinarle hasta donde era, y tienes que pasar un tiempo predefinido viéndolo para completarlo, algo que sería mucho más rápido si sólo leyeras.

Desafortunadamente la comunidad de Unity al parecer los ama, incluso la página oficial tiene puros videos, existen los tutoriales escritos, obviamente, pero *gasp* casi tienes que llegar a la segunda página de Google para encontrar uno.

Así que, para facilitarles la vida a ustedes, he decidido compilar algunos de los conceptos básicos que he encontrado o aprendido escarbando el internet (o los proyectos de mis amigos), no me meteré con código y me enfocaré solamente al 2D.

Esto no es un video.
Esto no es un tutorial.
Es una guía para que se den una idea rápida y fácil de cómo trabajar en Unity.

Lo más básico es: hacer que un mono se mueva.
(btw, esto es en 2D)

1.- Consigue el spritesheet del personaje en cuestión, impórtalo a los assets, también consigue un sprite que sea el piso (e impórtalo).
Basta con arrastrar las imágenes a la sección de assets de Unity para que se importen.

2.- Haz click en el spritesheet del personaje y en el inspector cambia el spritemode a multiple:

3.- Abre el sprite editor y slicea los sprites!

4.- Selecciona todas las partes de la animación y arrástralas a la escena, esto creará la animación automáticamente.

5.- Si das play, deberás de ver al personaje moverse en su lugar sin hacer nada realmente productivo (como tú)

6.- Selecciona al personaje, ve al inspector y ponle un nombre bonito, sigue algo importante.
7.- Ahorita si pones al personaje muy por arriba del piso se queda flotando, hay que hacerlo que interactúe, para eso, ve a dónde dice "Add Component" > Physics 2D > selecciona "Rigid Body". 
8.- Ahora igual, Add Component > Physics 2D > Box Collider 2D. TANTO PARA EL PERSONAJE COMO PARA EL PISO. Puedes editar la caja de colisión después :)
9.- Si das play ahora el personaje debe de caer sobre el piso y quedarse ahí.
10.- Ahora, para poder mover un personaje, necesitamos...
11.- Crea un nuevo script de C#

12.- El script ya trae unas cositas default sin traer mucha basura, ya importa el framework de Unity y crea dos métodos: start y update. En Start va lo que se carga al inicio y en Update lo que se cambia cada frame. También existe FixedUpdate que es por tiempo y no por frame, pero no lo veremos ahora.

13.- Hay que agregar el script al objeto, Add Component > Script > el nombre de tu script.
14.- Vamos a crear una variable speed que sea pública para que puedas manejar la velocidad desde el editor.
También puedes acceder a los diferentes componentes del objeto con el método GetComponent<>();
Settealo a algo como 5. Si tu personaje al final no se mueve, recuerda checar que no sea 0.

15.- Ahora, para que el personaje se mueva cuando presionas las teclas hay que hacer varias cosas:
  • Checar a qué dirección está volteando
  • Checar qué tecla está siendo presionada
  • Sumar la velocidad a la posición del personaje para que se mueva
El script quedaría algo así:


Unity ya tiene botones predefinidos, estos funcionan tanto con teclado como con control. Puedes verlos en Edit > Project Settings > Input. En este caso "Horizontal" se refiere a las flechas horizontales.

Listo! Ya con esto creo que te puedes dar una idea de cómo son las cosas en Unity, el resto es experimentar, ya que no sé qué juego tengas en mente hacer. Ve y pide trabajo en Valve.

Si ocupas un tutorial más completo y sin video, este está cool: http://pixelnest.io/tutorials/2d-game-unity/player-and-enemies/




No hay comentarios:

Publicar un comentario