Single Tech Games

Tutorial en español de Unity 2D #2 (Versión 4.3)

Hola gente! Hoy les traigo la continuación del video tutorial de unity 3d 4.3 seguiremos creando un videojuego con las herramientas nativas 2D que nos ofrece la plataforma, los assets utilizados los pueden encontrar en este link, el código de este tutorial está más abajo.

Este es el código de CoheteScript

using UnityEngine;
using System.Collections;
/// <summary>
/// Comportamiento del cohete
/// </summary>
public class CoheteScript : MonoBehaviour {
 /// La velocidad del cohete
 public Vector2 velocidad = new Vector2(50, 50);
 // Guardamos el movimiento
 private Vector2 movimiento;
 /// <summary>
 /// Se ejecuta en cada frame del juego (fps)
 /// </summary>
 void Update()
 {
 // Recibimos la informacion del eje X, Y segun presionamos el teclado
 float inputX = Input.GetAxis("Horizontal");
 float inputY = Input.GetAxis("Vertical");
 // Movemos segun la direccion
 movimiento = new Vector2(
 velocidad.x * inputX,
 velocidad.y * inputY);
 }
 /// <summary>
 /// Igual que update pero se ejectua por cada frame fijo, se utiliza cuando trabajas con fisicas
 /// </summary>
 void FixedUpdate()
 {
 //Movemos el cohete en el juego
 rigidbody2D.velocity = movimiento;
 }
 /// <summary>
 /// Se ejecuta una vez se crea el objeto, es el constructor en poo
 /// </summary>
 void Awake()
 {
 }
 /// <summary>
 /// Se ejecuta despues de Awake, la diferencia es que solo se ejecuta si el script esta activo
 /// </summary>
 void Start()
 {
 }
 /// <summary>
 /// Se ejecuta cuando se destruye el objeto, aqui puedes colocar codigo final si fuese necesario
 /// </summary>
 void Destroy()
 {
 }
 /// <summary>
 /// Se ejecuta cuando hay una colision con un objeto colisionador
 /// </summary>
 void OnCollisionEnter2D(Collision2D colision)
 {
 }
 /// <summary>
 /// Se ejecuta cuando el objeto colisionador dejo de colisionar
 /// </summary>
 void OnCollisionExit2D(Collision2D colision)
 {
 }
 /// <summary>
 /// Se ejecuta cuando hay una colision con un objeto colisionador marcado como Trigger (Disparador)
 /// </summary>
 void OnTriggerEnter2D(Collider2D colisionador)
 {
 }
 /// <summary>
 /// Se ejecuta cuando el objeto colisionador marcado como Trigger (disparador) dejo de colisionar
 /// </summary>
 void OnTriggerExit2D(Collider2D colisionador)
 {
 }
}

Este es el código de NubeScript, le cambie el nombre

using UnityEngine;
using System.Collections;
public class NubeScript : MonoBehaviour {
 /// La velocidad de la nube
 public Vector2 velocidad = new Vector2(5, 5);
 // Guardamos el movimiento
 private Vector2 movimiento;
 // Colocamos la velocidad de la nube
 public Vector2 direccion = new Vector2(-1, 0);
 /// <summary>
 /// Se ejecuta en cada frame del juego (fps)
 /// </summary>
 void Update()
 {
 // Movemos segun la direccion
 movimiento = new Vector2(
 velocidad.x * direccion.x,
 velocidad.y * direccion.y);
 }
 /// <summary>
 /// Igual que update pero se ejectua por cada frame fijo, se utiliza cuando trabajas con fisicas
 /// </summary>
 void FixedUpdate()
 {
 //Movemos el cohete en el juego
 rigidbody2D.velocity = movimiento;
 }
}


Para hacer este tutorial tuve como base el tutorial de Pixelnest.io y uno de un tanques de unit3y que está muy bueno también
Suerte!

0 0 votes
Article Rating
Subscribe
Notify of
guest
10 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Jose

Hola Cesar estan muy bien los tutoriales pero una cosa por si a alguien mas le ha pasado:
en el tutorial cuando estas explicando el Script de la nube, creo que tienes un error en esta parte:
public class MovimientoScript : MonoBehaviour {
en realidad deberia ser:
public class NubeScript : MonoBehaviour {
porque sino da error al ejecutar de que miremos el Script algo como Fix the Script…
y despues tambien faltaria una llave
} al final del Scipt para terminar de cerrarlo, sino tambien da error.
Un saludo a todos y sigue asi 🙂

kikox

Hola Cesar, gracias por revisarlo por lo que he podido ver ya existían proyectos 2d hechos con unity antes de que existiera el toolkit 2d, lo único que ahora estas herramientas son mas especificas para el desarrollo 2d añadiendo físicas y mejor manejo de sprites. Estos juegos hechos anteriormente aprovechaban la 3ª dimensión osea la profundidad z pudiendo tener por ejemplo un escenario 3d con personajes 2d para un juego conceptualmente para scroll lateral. Esto esta muy bien para hacer juegos de tipo klonoa y es una idea atractiva. Bueno supongo que de momento lo voy a dejar de leer y me centraré en aspectos generales de unity incluido el 3d aunque a día de hoy me interesa mas el 2d, tiene mas tirón con el tema de los móviles.
De momento mi intención es hacer un juego sencillo de tipo windjammers de neo geo será mi primer videojuego a ver que sale, pero estoy a punto de sacar una app en el play hecha puramente con android y me consume el poco tiempo libre que tengo y no avanzo muy rápido jejeje .
Bueno a ir aprendiendo poco a poco gracias por tu ayuda.

kikox

Je de momento estoy pez , supongo que el libro si lleva todo el tema del 2d que han incluido en la 4.3 ya que se publicó en octubre de 2013. Seguiré haciendo tutoriales a ver que sale de momento me parece todo muy sencillo y el scripting esta tiradisimo nada que ver con la maraña de clases que tienes que crear con libgdx o andengine para cualquier proyecto.

kikox

La verdad es que si , el soporte 2d ha sido muy reciente en la versión 4.3 con lo que esta calentito calentito. Con herramientas nativas no se a que te refieres ya que estoy empezando sorry, supongo que te refirieras al manejo de sprites de las versiones de unity 3 no conozco mucho al respecto así que no sabría decirte , de momento lo que me ponen en el libro es lo que hago. A ver si dentro de poco puedo hacer algo chulo

kikox

Buen tutorial para los que estamos empezando, yo estoy haciendo todos los tutoriales de este libro http://www.apress.com/9781430262299, bueno los que puedo para ir haciéndome con la UI de usuario e ir creándome algunas cosas, supongo que ya conocerás el libro pero bueno si alguien no lo conoce le puede servir de ayuda .
Feliz Navidad desde España Cesar.