4
Crear tu propio juego desde cero ¿Porqué unity? Buena pregunta.Con un conjunto de diferentes herramientas , esta es una de las muchas razones por las cuales elegí unity para seguir adelante: -Es absolutamente gratis para juegos de PC/Mac o Web -Unity es capaz de publicar para plataformas como Xbox , PS3,Android y Iphone también. -Unity utiliza "Javascript" y "C#" en conjunto con una gran cantidad de funciones y accesos directos ya incluidos. -Hay una gran comunidad para ayudar a los diseñadores a responder las dudas , y muchas de ellas se solucionan con solo mirar "Google". -Unity es completamente capaz de crear juegos tanto en 3D como en 2D , puedes crear un juego del tipo , puzzle , plataforma , FPS o Buceo (Entre todo lo que imagines) y hacerlo sin una gran cantidad de conocimientos en programación. Para aclarar un punto desde el principio: Programar no es para todos, es frustrante y complicado casi siempre y muy pocas personas son capaces de mantener o completar el proyecto por si mismos , sin embargo si tu tienes el sueño de completar tu juego y te ves a ti mismo avanzando , la felicidad al verlo será estimulante. Para simplificar , voy a comenzar con una lista de definiciones básicas que te ayudarán a familiarizarte con "Unity3D" -GameObject: Todo y todos los objetos dentro del juego son GameObjects Pueden ser muy simples o extremadamente complejos , visibles o invisibles , pero si existe en el juego es un GameObject. -Transform: Esto incluye la informacion que compone un GameObject , sus propiedades son: position (Posición) , rotation (Rotación) , scale (Escala) , los transforms son muy importantes , hacen que programar sobre objetos sea mucho mas facil. -Scene: Ese es el nombre que se le da a un nivel en unity, "piensa que una escena puede ser tu menú principal , pantalla de seleccion de personaje, pantalla de puntuacciones o todo lo que puedas hacer",un proyecto se puede componer de una o mas escenas , eso depende de cada uno.

1.Introduccion

  • Upload
    uno

  • View
    216

  • Download
    2

Embed Size (px)

Citation preview

Page 1: 1.Introduccion

Crear tu propio juego desde cero

¿Porqué unity?

Buena pregunta.Con un conjunto de diferentes herramientas , esta es una de las muchas razones por las cuales elegí unity para seguir adelante:

-Es absolutamente gratis para juegos de PC/Mac o Web-Unity es capaz de publicar para plataformas como Xbox , PS3,Android y Iphone también.-Unity utiliza "Javascript" y "C#" en conjunto con una gran cantidad de funciones y accesos directos ya incluidos.-Hay una gran comunidad para ayudar a los diseñadores a responder las dudas , y muchas de ellas se solucionan con solo mirar "Google".-Unity es completamente capaz de crear juegos tanto en 3D como en 2D , puedes crear un juego del tipo , puzzle , plataforma , FPS o Buceo (Entre todo lo que imagines) y hacerlo sin una gran cantidad de conocimientos en programación.

Para aclarar un punto desde el principio:

Programar no es para todos, es frustrante y complicado casi siempre y muy pocas personas son capaces de mantener o completar el proyecto por si mismos, sin embargo si tu tienes el sueño de completar tu juego y te ves a ti mismo avanzando , la felicidad al verlo será estimulante.

Para simplificar , voy a comenzar con una lista de definiciones básicas que te ayudarán a familiarizarte con "Unity3D"

-GameObject: Todo y todos los objetos dentro del juego son GameObjectsPueden ser muy simples o extremadamente complejos , visibles o invisibles , pero si existe en el juego es un GameObject.

-Transform: Esto incluye la informacion que compone un GameObject , sus propiedades son: position (Posición) , rotation (Rotación) , scale (Escala) , los transforms son muy importantes , hacen que programar sobre objetos sea mucho mas facil.

-Scene: Ese es el nombre que se le da a un nivel en unity, "piensa que una escena puede ser tu menú principal , pantalla de seleccion de personaje, pantalla de puntuacciones o todo lo que puedas hacer",un proyecto se puede componer de una o mas escenas , eso depende de cada uno.

Page 2: 1.Introduccion

-Prefab: "Objetos Prefabricados" Es un GameObject especial con detalles especificos , una vez que has creado un prefab , duplicarlo es sencillisimo , los prefabs te ahorraran un monton de tiempo ya que es una manera rapida de guardar las configuraciones de cada objeto.

-Variable: Una variable puede ser un monton de cosas: Un numero (float , int , double) , una letra o un texto(String) , un GameObject, un Transform, un Color , una paleta de colores (Color32) ,etc.A toda variable se le puede asignar un valor que será almacenado en la memoria.

Comenzando

Comenzando en unity por primera vez , podrás abrir proyectos de demostracion que normalmente trae unity, Como bootcamp o AngryBots , Una vez abierto el proyecto podrás utilizar el botón de play en la parte superior de la venana para comenzar el juego, todo lo que muevas o cambies mientras el boton este activado desaparecerá al pulsar el boton de Stop.

Bien , comenzaremos con nuestro propio proyecto , pinchemos arriba a la izquierda en File/New Proyect (Elegid la ruta que queraís), podeis incluir paquetes que ya trae unity , y que normalmente os ayudarán (sobretodo al principio), marcaís los que queraís y comenzais.

En tu proyecto nuevo deberían aparecer las siguientes ventanas:

-Scene: En esta ventana es donde se edita nuestra escena los objetos apareceran en la escena arrastrandolos a la escena desde la ventana proyect.-Game: Esta ventana se activará cuando pulsemos el play , se verá lo que actualmente hemos realizado en nuestra escena.-Hierarchy: Todos los objetos en el juego aparecen aqui , desde aqui se pueden seleccionar rapidamente usando el filtro por nombre.Comprobamos que dentro del Hierarchy tenemos un objeto llamado MainCamera , ese objeto es el que nos permitirá ver en el juego , lo que vea la camara , lo veremos nosotros.-Proyect: En esta ventana , aparecerán todas las carpetas , aqui podremos manejar todo lo que vayamos a incluir en el proyecto, materiales ,scripts , texturas , modelos ,snimaciones,sonidos,etc.-Inspector: Aqui se muestran todos los componentes del objeto seleccionado , en esta ventana es donde se le asignan y ajustan los scripts de cada objeto , todos los atributos.

Page 3: 1.Introduccion

Nuestro Primer Script

Vamos a comenzar a crear nuestro primer script y con el a crear una función personalizada.

Comencemos por algo facil:

var objetivo : Transform;

function Update () {transform.LookAt(objetivo);

}

¿Te parece complicado?, no te preocupes , vamos paso a paso;Comenzaremos programando en javascript.

"var" indica una variable , "objetivo" es el nombre de dicha variable y Transform es el tipo de variable, Este seria el orden "var nombre : Tipo;"Es muy importante poner ";" al final de las órdenes para cerrar la linea ya que si no , el script nos detectará un error indicandonos la linea que tiene un fallo en la consola.

La funcion "Update ()" es una funcion integrada por unity , se ejecuta x frames por segundo (Depende del Hardware del ordenador en el que se ejecuta)

transform.LookAt() provoca que el transform(perteneciente al objeto) , mire con su eje z al objetivo sería algo asi"x.LookAt(Objetivo);" donde x es el objeto que realiza la accion.

Nota: transform , si no va precedido de una variable objeto se refiere al transform del objeto en el que este asignado el script.

-Base por frank (Inglés) , traducido y reescrito al castellano por Jesus Garcia (Mcklem) , también se le han añadido ejemplos y ampliado algunos campos.

A continuacion os pongo una lista de pequeñas demostraciones que pueden serviros para comenzar

Page 4: 1.Introduccion

Lista De Ejemplos Útiles:

Instanciar Objetos:

var ObjetoAInstanciar : GameObject;

function Update () {

if(Input.GetMouseButtonDown(0)){var ObjetoInstanciado : GameObject = Instantiate(ObjetoAInstanciar,transform.position,transform.rotation); }

}

Input.GetMouseButtonDown(X)//Esta linea permite que solo al pulsar el raton se ejecute una vez lo que tiene en su interior , a diferencia del Input.GetMouseButton(X) que lo hará continuamente.

Donde X puede ser 0 – Boton izquierdo del ratón , 1 – Boton derecho del raton , 2 – Boton del centro del raton y así sucesivamente, el resto de números a partir del 3 no se suelen ajustar ya que no todos los ratones disponen de ellos.

Una linea por debajo del Input.GetMouseButtonDown() tenemos la creacion de una variable , al crear la variable dentro de la funcion , esta solo estará disponible dentro de dicha función , justo en el momento de crearla , la estamos dando tipo GameObject , e inmediatamente le asignamos un objeto , esto es lo que crea el objeto.

Instantiate(ObjetoAInstanciar,Posicion,Rotacion);

Nosotros estamos haciendo que tome la posicion y rotacion del objeto al que esta asignado el script escribiendotransform.position y transform.rotation.

Para ver videotutoriales click en http://www.youtube.com/user/mcklem Para mas información click en http://mcklemgames.com/

Mcklemgames.com © Todos los derechos reservados