Foros de Centro Pokémon
Archivo histórico
Estás viendo el archivo de los foros de Centro Pokémon. Ya no se pueden crear temas, responder ni iniciar sesión.
#1

Tutoriales

Tutorial #1
Utilización básica del motor de juego

El motor que he decidido utilizar al final es: Unity, ya que este motor de juego tiene mucha mas documentación en español que Game Maker y no ocupa tantos requisitos como Unreal, por lo que vamos a empezar con el motor Unity por esos motivos


Además que va a darle soporte a Nintendo Switch (?:
Spoiler


Unreal también pero ya les dije los motivos por el que ese todavía no, tal vez en un futuro se los explique si aun se mantienen por acá (??



Introducción:

Antes de empezar este tutorial voy a especificar lo que va a tratar: Vamos a descargar el motor de juegos Unity, además vamos a ver las funciones en 3D que tiene y al final vamos a hacer un exportable a la plataforma Windows.

Aunque todo esto se hace para que experimenten un poco con el motor en 3D ya que lo que vamos a hacer es empezar a hacer juegos básicos en 2d para en un futuro (si esto tiene apoyo y continúa) avanzar a hacer ya el juego propiamente en 3D.
Entonces esta parte es para motivarlos un poco, por el momento no vamos a aprender a modificar en 3D ya que debemos saber lo básico al menos.


Para no hacer mas largo la introducción vamos a empezar





Descargar el motor de videojuego: Unity3d


https://unity3d.com/es <---- para descargarlo vamos a esa página


Pasos para descargar:
Spoiler


Darle a obtén unity ahora
Luego le damos a la opción de personal

Gratuito obviamente(?


Luego nos sale una ventana para descargar el instalador, lo descargamos y ejecutamos
Luego le damos a siguiente, siguiente y vemos esta parte:

Marcamos el Unity, la documentación, Standart Assets (Importante), el de Android Build Support y también el de iOS que es lo que vamos a trabajar por aquí, opcional pueden marcar el linux build support y el microsoft visual studio pero este último igual no va a ser necesario pues usaremos el editor por defecto de unity


Después de aquí elegimos donde lo queremos instalar y ya todo es next, next.



Una vez instalado
Creando un nuevo proyecto:
Spoiler

Cuando tengamos instalado el Unity nos va a aparecer el inicio de sesión:

Como en su caso puede que sea la primera vez que lo utilicen lo que vamos a hacer es darle a crear una, indicado en las flechas.


Llenan los datos y listo ya tienen la cuenta, una vez creada inician sesión poniendo su email y contraseña.
Luego va a verificar su licencia y seleccionan la de Unity Personal Edition y les va a aparecer para crear un nuevo proyecto una vez finalice toda la validación de licencia:



Vamos a crear el proyecto llamado: Tutorial1
Pero antes de darle a create project:
Le damos damos click donde dice: Add Asset Package


Y añadimos las siguientes:
Cameras
Characters
Effects
Environment
Utility








Yo tengo mas assets instalados por eso los tuve que recortar así.
Una vez que tengamos todo esto le damos al botón: DONE
Y nos devuelve a la página anterior, una vez ahí le damos a:
Create project


Esperamos unos minutos hasta que el proyecto se complete, puede durar unos 5 minutos mas o menos (depende igual del computador).





Utilización del motor de juego

Spoiler




Vamos a explicar un poco que es cada cosa
Primero los controles con la rueda del mouse te acercas y te alejas, con click derecho dentro de scene puedes ver libremente con un ojo que aparece.




El cuadro Celeste/Verdeagua como se llame: Posee las herramientas de mano para moverse en la pantalla, el de mover objetos (que está seleccionada en la imagen), otra para rotar un objeto, y las otras dos son para cambiar el tamaño.

Cuadro Verde: Tiene la escena del juego (en esta es donde tienen que ir modificando), la pestaña de juego donde pueden ver el resultado final. Las otras dos puede que le aparezca o no pero esas las veremos mas adelante: Asset Store donde puedes comprar cosas para tu juego o también adquirirlas gratis entre ellas: Animales, Personajes códigos, vegetación, etc. El animator que lo veremos mas adelante pero ese es el que controla las animaciones de los personajes que veremos mas adelante.

Cuadro rojo: Ahí esta todo su proyecto, objetos de juego como se llama aquí, ahí estarán sus personajes, mapas, cámaras, luces, terrenos, etc. En este tutorial vamos a ver algunas cosas que involucran esta parte

Color Azul: Carpetas del proyecto, estas son las carpetas que importamos cuando le dimos a Add Assets Package mas adelante vamos a ver que podemos utilizar de aquí.

Cuadro Morado: Ejecutar el juego o pausarlo.

Cuadro Amarillo: Inspector ahí vemos las propiedades de los objetos como el tamaño, las colisiones, las texturas, los scripts, etc. Lo veremos mas a profundidad conforme avancemos.






Siguiente:
Spoiler

Ahora lo que vamos a hacer es algo sencillo para empezar pero esto lo vamos a modificar para futuro.
Vamos a añadir un terreno a la escena, para eso vamos a: GameObject ->3D Object -> Terrain


Lo siguiente que vamos a hacer es añadirle unas texturas al terreno entonces vamos a la parte derecha (Inspector) le damos click al pincel y le damos a Edit Textures:



Le damos a Add Texture que nos va a aparecer al darle click a ese botón

Seleccionamos la textura que esta seleccionada con la flecha le damos a select y se nos abrirá una nueva pestaña, para facilitar la búsqueda ponemos: grass y nos pondrá las texturas de hierba, seleccionamos cualquiera de las 2 que están con las flechas.
Y una vez este hecho esto le damos a: Add

Y listo ya tenemos pasto en el terreno:


Si queremos editar el tamaño del terreno nos vamos a sus configuraciones:


Y abajo de esa parte saldrá el tamaño de alto y ancho del cuadro:

Pueden modificar cualquiera de esos valores para aumentar o disminuir el terreno, las otras opciones las veremos cuando lleguemos a hacer estos juegos en 3D.

Para seguir con la utilización del motor vamos a añadir Árboles para hacerlo nos vamos a:

Al icono de árbol y luego edit Trees, le damos a add tree y nos aparecerá esta ventana:

Le damos a ese icono de configuración y nos aparecerá la siguiente pestaña:


Buscamos cualquier árbol que diga Desktop una vez que lo tengamos le damos a Add.


Estando en la pestaña Scene
Nos va a salir un circulo azul donde va ir pintando arboles en el terreno, podemos modificar el tamaño del pincel en Brush Size, en este caso no ocupamos poner muchos arboles.

Ahora vamos a añadir montañas en el escenario, para eso vamos a la parte seleccionada:

Y podemos modificar el pincel a gusto, igual con el pincel del circulo azul vamos haciendo montañas en el escenario, si nos equivocamos con ctrl + z volvemos a la normalidad.

Ahora después de añadir montañas vemos que esta en verde pero no se ve como una montaña, por lo que vamos a añadir una textura que se parezca suelo de montaña para eso vamos igual a edit texture, add texture y buscamos una textura de rocas

En mi caso seleccioné el MudRocky

Seleccionamos la nueva texura que añadimos y vamos pintando las montañas.

Ya con esto tenemos lo básico en un mapa 3d, podemos añadir mas cosas pero se verán en un futuro.
Pero ahora la cuestión es que se estarán preguntando que quieren ver su mapa creado pero como lo hago.

Pues ahora vamos a las carpetas de Standard Assets -> Characters

Luego le damos a:

FirstPersonCharacter
Luego una vez dentro de esa carpeta buscamos una que diga prefabs:

Ahora vemos el que dice FpsController

Arrastramos este al escenario:

Y vemos como aparece un FPSController en la Jerarquía, ahora tenemos que asegurarnos a que el FPSController no este al nivel del suelo o mas abajo, tenemos que asegurarnos a que este arriba.


Para acercarse mas al objeto le damos dos veces click (En este caso dos veces click a FPSController) y con la herramienta de mover, lo subimos por encima del suelo.
Al darle click a jugar nos puede salir el mensaje que esta seleccionado con la flecha abajo:


Para solucionarlo nada mas tienen que borrar el objeto Main Camera, click derecho a Main Camera -> Delete
Ahora probamos el juego y ya estaría listo el demo.

Con las teclas: WASD se mueve, con shift te mueves mas rápido y con barra espaciadora saltas.
Antes de exportar tenemos que Guardar la escena, le damos a Save Screne As....
Y lo guardamos con un nombre en mi caso le puse escena1

Ahora lo que queda es exportar esto que hicieron para que lo tengan en el pc, para hacerlo van a File->Build Settings

Le damos a Add Open Scenes para añadir la escena que acabamos de guardar y luego le damos a Build:


Ponemos un nombre y esperamos que todo el trabajo lo hace unity puede durar unos 5 minutos.
Y ya tenemos un ejecutable para PC, pero antes de llegar a modificar estos juegos en 3D vamos a tener que aprender lo básico en 2d para hacer juegos mas adaptables y el cambio al 3d sea mas facil.

Lo que se vea cuando le das click al ejecutable se los dejo a ustedes para que lo descubran (?

Por lo que vamos a hacer un tutorial de un juego en 2d antes de pasar a todo esto de 3d.


Para la tarea de este tutorial lo que van a hacer es instalar el Unity y sacarle una screen a un mapeo propio suyo, opcional pueden sacar una screen del ejecutable.
Pero lo que mas me interesa es que hayan instalado el Unity en esta ocasión para seguir con el tutorial en 2d para la siguiente ocasión.



Las pruebas que van haciendo el tutorial van a ser posteadas en el siguiente tema: http://www.cpokemon.com/foro/threads/40202-Exposici%C3%B3n-de-tarea

@Overly.
@Exerux
@juan459
@JhonnPenguin
@EthanBarush
@Batotsu
@Matthew Crown
@Alfredo+
@Albert


Spoiler



Spoiler






Smile!










#Creyente de Karla
#2
Tutorial #2
Unity 2d introducción.

Aclaración: Para los que no enviaron sus avances en la tarea anterior no importa mucho ya que lo único necesario que quería ver en el tutorial anterior era que tuvieran instalado Unity.

Bueno ahora lo que vamos a hacer en este tutorial es una introducción a lo que es Unity 2d, todo esto es lo básico, vamos a empezar a hacer un juego tipo flappy bird.

Materiales:
Spoiler

http://i.imgur.com/v11rBfX.png <---- link directo



Un consejo de optimización: para optimizar un juego en 2d es recomendable que todas las imágenes del juego vayan a estar contenidas en una sola imagen ya que el motor de juego solo va a tener que buscar una imagen y no todas que pueden estar en carpetas diferentes, en este caso solo carga una vez y listo.


Añadiendo todo
Spoiler



En este caso no vamos a necesitar instalar ningún asset por que en esta ocasión lo vamos a hacer todo desde 0.

Por lo que nada mas le ponemos nombre, en mi caso le puse Flappybird, le damos a create project y esperamos a que cargue todo.

Una vez iniciado lo que vamos a hacer es darle click derecho en la parte de Assets y vamos a crear una nueva carpeta (Folder) que diga: Escenas, otra que diga: Imagenes, Otra que diga Prefabs y otra que diga Audio, que quede así:




El motivo de hacer estas carpetas es para tener todo ordenado desde el inicio, ahora una vez que tengamos la imagen: http://i.imgur.com/v11rBfX.png en la pc (o ustedes pueden crear sus propios diseños), lo que vamos a hacer es arrastrar donde tenemos la imagen a la carpeta imagenes de unity: asi:


Ahora seleccionamos la imagen y a la derecha ---> en el inspector cambiamos donde dice: sprite mode de single a multiple:


Despues le damos a sprite editor:



Luego nos puede salir el siguiente mensaje:

en caso que salga nada mas le damos a Apply

Luego se nos abrirá el sprite editor:


http://i.imgur.com/g0XRB5X.png <---- para verlo en tamaño completo

Los pasos son:
1-> cambiar el type a automatic en caso que este seleccionado otro, esto es para que mismo editor corte automáticamente las imágenes que exportamos para poder usarlas por separado
2-> darle a slice esto es para que corten las imagenes
3-> Darle a apply que esta arriba a la derecha y con esto le damos a la x


Para que vean las imagenes le damos a lo que señala la flecha roja

Ahora lo que hacemos es ir a Game Object -> Create Empty
Con esto creamos un objeto de juego como su nombre lo dice, a este objeto creado lo llamamos Jugador



Seleccionamos el objeto que acabamos de crear y nos vamos a la derecha en el inspector le cambiamos el nombre a Jugador de esta manera y pulsamos enter:


Y hacemos 4 objetos mas de la misma forma: Cámara, Fondos, Suelos, Tubos


Movemos la Main Camera a Camara para hacerlo es arrastrarlo nada mas:


Ahora arrastramos el fondo a la escena:


Ahora en la parte de Transform ponemos x: 0 y:0

Quedaría así:

El motivo es para que quede en el centro de la pantalla

Cambiamos el nombre que viene por Fondo:


Y movemos el objeto Fondo a Fondos:


Ahora vamos a Game y vemos que el fondo no esta adaptado a la camara que pusimos:


Puede que les salga algo así como en la imagen bueno esto es debido a que nuestro juego lo estamos haciendo para Windows, pero en este caso queremos que nuestro juego sirva para celulares pero como hacemos esto?
Es bastante sencillo nos vamos a File->Build Settings



Seleccionamos Android y le damos a switch platform, en este caso vamos a hacerlo en Android ya que es la mas facil para exportar un apk y jugarlo en nuestro celular, igual existen emuladores para Android que se los estaré pasando por aquí, esto por motivos de costos publicar en iphone cuesta 100 dólares no los voy a hacer pagar eso si este curso es gratis

Una vez le damos a Switch platform vamos a esperar a que haga la conversión.

Para saber si todo ha funcionado correctamente, tenemos que ver la marca de unity en la plataforma:




Cambiando de plataforma y añadiendo cosas:
Spoiler


Una vez que cambiamos a la plataforma Android como vimos anteriormente, vemos que en la parte de game nos aparecen nuevas opciones, en este caso vamos a seleccionar cualquiera que diga: Portrait en mi caso seleccioné este:


Pero ustedes pueden seleccionar la que les guste y sea Portrait.

Ahora lo que vamos a hacer es duplicar el fondo (esto ya que en realidad lo que se va a mover en la pantalla es el fondo y los tubos) Para hacerlo click derecho duplicar:



Ahora movemos el nuevo fondo en la posición 6.98 en x:


Y le cambiamos el nombre a fondo2:


Ahora nos vamos a scene y agregamos el suelo:


Lo posicionamos en x:0 y en y: -4.64 :

Lo de nombre igual le ponemos suelo y después lo arrastramos a suelos:


Ahora volvemos a hacer lo mismo que con el fondo, vamos a duplicar el suelo:


Acomodamos el suelo en x: 7 || y: -4.64

Ahora vamos a añadir al personaje, para hacerlo ahora tenemos que seleccionar uno y le damos ctrl + click para seleccionar 3 al mismo tiempo y los arrastramos a la escena:


Nos saldrá una ventana de animación:

Le damos a donde indica la flecha en assets y creamos una nueva carpeta que vamos a llamar Animaciones, de esta forma:




Le ponemos algún nombre a la animación que estamos haciendo, en mi caso es Aleteo, aunque recomiendo usar el mismo:


Y le damos guardar

Después de esto vemos que se crea una carpeta llamada animaciones donde va a estar nuestra animación, por ahora lo que vamos a hacer es cambiar el nombre del personaje que acabamos de añadir por uno como: Flappy:



Y lo arrastramos al objeto Jugador:


Usamos la herramienta de mover para mover el jugador a una zona mas a la izquierda <---
Ya aquí es gusto de ustedes, en mi caso lo dejé así:
X: -1.44 || Y: 0.89


Ahora si queremos ver la animación de nuestro personaje nos vamos a la pestaña que dice animation, pero en caso que no la tengan pueden agregarla de la siguiente manera:
Nos vamos a un menú de opciones a la par del candado y nos saldrá la opción de Add tab y le damos animation:


http://i.imgur.com/sgOrt63.png <--- imagen completa

Una vez tengamos la pestaña de animation le damos click, nos aparecerá el menú de animaciones:


Para poder ver la animación como en la imagen, tenemos que seleccionar el objeto que tiene una animación en este caso es Flappy, primero le damos click en Flappy y nos mostrará su animación.

He resaltado varias cosas importantes, el número 12 que dice son los frames por segundo, por el momento como es un juego sencillo sin muchas animaciones que se vean fluidas como en 60 frames por segundo o cosas así, lo vamos a dejar en 12 ya que este juego no es que destaque mucho por una animación fluida, lo que esta seleccionado como flecha roja es el nombre de la animación donde estamos actualmente y la última flecha que señala a un botón de play es para visualizar la animación. En este caso vamos a seleccionar el fotograma del medio y lo vamos a colocar después del último para que haga una animación mas correcta:

Para poder hacer eso, le damos click al frame de mas arriba que esta señalado con la flecha y le damos ctrl + c (copiar)


Luego nos vamos a la línea que dice 0:03 y le apretamos ctrl + v (pegar):


Y así nos queda el frame listo, podemos ir moviendo los frames por si no nos convence la animación.

Ya con esto tenemos la animación del personaje listo, lo que nos falta es añadir las tuberías:
Nos devolvemos a la carpeta project y nos vamos de nuevo a imagenes:



Arrastramos la tubería al escenario:


Hacemos lo mismo que venimos haciendo, le cambiamos el nombre que viene por: Tubo y la movemos a Tubos, el Tubo puede estar en la posición en el mapa que quieran ya depende de su maldad hacia el jugador (??

Duplicamos el tubo y le ponemos de nombre Tubo2, al Tubo 2 lo seleccionamos y le cambiamos la rotación de z a 180:


Y ya con esto tenemos el escenario del juego, lo próximo sería ya entrar a scripts, ponerle gravedad y alguna música al juego aunque flappybird original no tenga nosotros le vamos a poner, ademas ver si entramos a que cuando se pulse la pantalla flappy salte pero todo eso lo vamos a ver en los próximos tutoriales.

A ver si nos da tiempo para el próximo empezar con todo eso por que antes tengo que enseñarles varias cosas sobre el lenguaje que vamos a utilizar: C# (C sharp).

Por el momento lo que vamos a hacer es guardar la escena en la carpeta escenas para tener guardado todo este avance, para hacerlo nos vamos a File-> Save Scene As


Seleccionamos la carpeta Escenas:


Le ponemos un nombre a la escena en mi caso le puse: EscenaJuego y le damos a guardar:


Ya con esto finalizamos el tutorial.

La tarea es que saquen un pantallazo de la parte de animaciones:


Desde la pestaña de game para que haya una prueba de que venimos haciendo el tutorial

Es algo sencillo esta vez.

Para lo de la música me voy a adelantar un poco, recuerden que no se puede utilizar música con copyright si por ejemplo al final que le vamos a poner anuncios no pueden ganar dinero si utilizan música de ese tipo, por lo que una solución (como hacen los youtubers para música en sus videos) es utilizar música copyleft.

Por el momento les pido que vayan buscando alguna canción que les guste para su juego de flappy bird que sea copyleft, alguna de las paginas donde pueden buscar son las siguientes:

http://incompetech.com/music/royalty-free/music.html <--- Royalty Free (Sin pagar regalías, pero las mismas canciones tienen alguna parte de licencias que deben poner, por ejemplo nombre del autor, etc)

En esa página por ejemplo la primera música que me salió dice que en la parte de créditos se debe poner lo siguiente:
Credit this piece by copying the following to your credits section:

"Rainbows" Kevin MacLeod (incompetech.com)
Licensed under Creative Commons: By Attribution 3.0 License
http://creativecommons.org/licenses/by/3.0/


Por lo que se puede usar música de esa página también

http://www.bensound.com/royalty-free-music/2 <--- Igual que la anterior, puedes usar la música si das créditos en la misma página te especifica como lo debes hacer

https://www.jamendo.com/playlist/92673/free-and-copyleft-music?language=es <--- Copyleft

Les dejo esas opciones, igual pueden buscar por youtube como: música para mis vídeos o música gratis o música copyleft y les va a salir varias opciones, igual para mi la mejor es la primera que les pasé ya que está dividida por género y solo debes dejar crédito. Aunque ya saben que lo mejor es tener a alguna persona que se encargue de la música y que sea original pero como este es un curso para usar unity y de códigos eso es secundario (??




Y eso sería todo por este tutorial, espero que les haya gustado y espero comentarios también de que les ha parecido.

@Overly.
@Exerux
@juan459
@JhonnPenguin
@EthanBarush
@Batotsu
@Matthew Crown
@Alfredo+
@Albert
@Mishu
@NEET Samurai
@McBrujo
@xpoke


Spoiler



Spoiler






Smile!










#Creyente de Karla
#3
Tutorial #3

Introducción a los scripts

Para este tutorial vamos a añadir música a la escena y voy a introducir un poco lo que son los scripts, también vamos a ver lo básico en programación de c# (c-sharp).

Scripts:
Spoiler

Bueno esta parte es la única que van a tener que hacer, lo demás es modo de explicación.
Primero que nada vamos a crear una carpeta que diga: scripts:
Ya sabemos click derecho en la parte de assets -> create -> folder y le llamamos: scripts


Les debe quedar algo así:

Recuerden que esto de hace para un mejor orden.

Ahora nos vamos a edit -> preferences:


Y se nos abrirá una ventana, en esa ventana nos vamos a external tools y seleccionamos en la parte de External Script Editor: Mono-Develop (built-in):

Mono Develop es el editor que viene por defecto en Unity por eso al menos para mi es mi preferido para trabajar aquí, ya le damos a la x una vez que lo seleccionamos y ahora vamos a la parte teórica.




Parte teórica:
Spoiler

Esta parte no tienen que realizarla.
Lo haré en modo de explicación introductoria para que vayamos entendiendo un poco de lo que vayamos haciendo mas adelante y que no seamos un copia-pega código ya que no vamos a saber para que sirve lo que estamos "copiando"
En este caso voy a crear un script, para crearlo (igual lo haré mas adelante en la parte práctica).
Click derecho en la parte vacía de la carpeta, create -> c# script:


Le puse de nombre Personaje


Ahora le doy doble click y puedo abrir la parte de script, me cargará el mono develop.
Al cargar nos aparecerá esto:

Este es un script que viene por defecto en Unity.
Para entender un poco la programación que estamos haciendo acá (espero no complicarme mucho)

Un poco para empezar en las líneas 1 y 2 vamos a ignorar un poco esto, son unas librerías que viene por defecto para hacer código en unity que no vamos a meternos mucho (en este momento) en eso.
Pasamos a la línea 4 que es la que mas me interesa, c# utiliza una programación que se llama programación orientada a objetos, uno de los pilares fundamentales de este tipo de programación son las: clases
en este caso representadas por: class y con el nombre del script.

Para entender un poco este concepto de clases viene siendo por ejemplo cualquier sustantivo en el lenguaje español: Personaje, música, niño, televisión, carro, mueble, silla, abanico, casa, médico, etc.
En mi caso tomé como ejemplo: Personaje.

Después abajo vienen dos funciones, para entender el concepto de funciones y tomarlo en la vida real viene siendo como "acciones", en caso de unity las "acciones" por defecto vienen siendo: start y update, la función start significa que se va a ejecutar alguna acción del Personaje solo una vez y nada mas cuando inicia el juego. La función update en cambio se ejecuta en cada fotograma por segundo.

Estas funciones las explico ahora para que entiendan el concepto para que funcionan, mas adelante las vamos a ver con detalle.


Para seguir explicando el concepto de clases y algo muy importante que nos van a ayudar a dar vida al juego son las variables, en la siguiente imagen vamos a encontrar algunas variables y vamos a explicar para que funciona:

Estos son algunos tipos de las variables.
Primero tenemos el int que se utiliza para números normales como el 0,1,2,3,4,5,6,7,8,9,10. Pero no utiliza números decimales ni otros, solo enteros, importante siempre terminarlas con ; (punto y coma), ya que indica el cierre.

string: son cadenas de textos para declarar las cadenas de texto se deben usar comillas: " " ya con eso indicamos que se va a tratar de un texto, importante siempre terminarlas con ; (punto y coma).

bool: se utiliza para indicar si es falso o verdadero, se indica si es false (para falso) y true (para verdadero) e importante terminar siempre de declararlas con ; (punto y coma).

float: es para representación casi de números reales, puede llevar cualquier tipo de número, siempre termina en f e importante como siempre terminar con ; (punto y coma)

double: se utiliza para números decimales, igual que las anteriores debe terminar con ; (punto y coma).


Ahora alguna duda que les puede surgir es por que dice public tanto en la clase como en las variables?
Bueno eso se debe a un concepto llamado: Encapsulamiento.
Para poner un poco mas sencillo este concepto es como van a estar ocultos los datos entre las otras clases o fuera de ellas. Voy a explicar los 3 tipos que se utilizan en unity:

public: (público en español): la información del valor puede ser accedidas desde cualquier parte del programa o clase. Para poner un ejemplo en la vida real sería tu nombre, cualquiera puede saber tu nombre en la vida real ya que le das acceso a cualquier persona a saberlo, poniendo un ejemplo pequeño.

protected: (protegido en español): la información solo puede ser accedidas desde la misma clase o clases que hereden de ella. Este tipo no la vamos a utilizar mucho pero se utiliza para que la clase hija tenga los mismos valores que su clase padre, como por ejemplo una clase Persona que tiene una cédula, un nombre, una edad y luego una clase hija que sea un estudiante, que va a tener los mismos datos que una persona (cédula, nombre, edad) y se le añade una titulación (secundaria, universidad, etc). Cuando lo utilicemos se van a dar una mejor idea.

private: solo modificable desde la misma clase, es el mas importante. La mayoría de datos queremos que sean privados y que sean solo modificadas en la misma clase. Para poner un ejemplo de la vida real a ver que se me ocurre (? por ejemplo si tu contraseña (Que es privada pues) solo tu como "clase" de persona puedes modificarla (en teoría). También maneja otras cosas como tu número de identificación que debe ser privada y otros ejemplos que no se me ocurren ahora (son la 1 am (???)). Son modificadas por métodos set y se accede a ellas por métodos get, después vamos a ver todo esto (?

Para aplicarlo en el caso de la clase Personaje a ver que se me ocurre agregarle:

En este caso le añadí una velocidad (que quiero modificar externamente, se me ocurre que este personaje en el nivel 1, osea en la primera escena, va a tener una velocidad de 2, en el nivel x yo quiero que tenga una velocidad de 18.

Para que veamos como se ve un valor público externo en unity:
Guardo el script y lo arrastro al inspector de nuestro personaje:


Y ahora nos fijamos como queda:


Fíjense en la última parte: Personaje (Script)
Como vemos hay solo 2 cosas públicas que se ven fuera del script, en este caso la velocidad y el nombre del script.
La variable "velocidad" la podemos modificar fuera del script nada mas cambiando el valor de 2 por cualquier otro, esto es muy útil si queremos ir variando la "velocidad" por cada nivel que vayamos haciendo. En cambio la variable privada que pusimos: haMuerto = false;
Esa variable no puede ser modificada fuera de la clase (o del script pues).

Y la función de saltar tiene que ser llamada en este caso por alguna de las funciones por defecto de unity (start o en update), de la siguiente forma:

En este caso utilizamos la función update que va a ser llamada en cada frame por segundo, por lo que es la mejor candidata para poner una verificación si el usuario presiona la pantalla, llame a saltar();
Para llamar a esa "acción" de saltar, se debe poner el nombre de la función en este caso saltar, los dos paréntesis y el punto y coma importante para indicar el cierre.

Aunque hay otra forma para llamar a esa función que la veremos en este mismo tutorial.

Mas adelante le daremos funcionalidad a todo esto, aún no estamos verificando cuando el jugador presiona la pantalla y la función de saltar aún no funciona, lo veremos en el siguiente tutorial.





Parte práctica:
Spoiler

Vamos a aplicar un poco los conceptos de clases que vimos en la parte teórica, también vamos a añadir la música.
Para este ejemplo vamos a hacer algo muy sencillo que es cambiar de escena.

Recuerden guardar la escena antes de todo esto en File -> Save Scene.

Ahora le damos a File -> New Scene:

En esta nueva escena le vamos a dar a Save scene as:

Y luego seleccionamos la carpeta de escenas:

Le ponemos de nombre: MenuPrincipal (Sin tilde) y la guardamos aquí:


Una vez que guardemos la escena, vamos de nuevo a File -> Build Settings:


Y añadimos esta escena al juego:

Nos aparecerá esto:


A la izuiqerda <---- el nombre de la escena, en la derecha ---> indica en que nivel esta la escena, en este caso es 0, eso significa que va a ser la primera de todas las escenas en cargar una vez que hagas el juego completo.

Ahora vamos a hacer un script que va a hacer cargar otra escena cuando pulsemos un botón:
En la carpeta de scripts, le damos en el espacio vacío, create -> c# Script:


Y ahora nos aparece el nuevo script que vamos a llamar: CargarEscena:


Le damos doble click y cargamos el script:
Ahora en el script que viene por defecto le añadimos las siguientes líneas:

La primera:
using UnityEngine.SceneManagement; <--- Va utilizar la librería SceneMAnagement para manejar las escenas del juego en Unity, para eso funciona no hay mas misterios.

Lo segundo, tenemos una clase de CargarEscena y que acciones puede hacer un CargarEscena? pues sencillo, la acción es cargarEscena así de sencillo.

En este caso es una función que recibe un parámetro que sería una cadena de texto con el nombre de la escena, ahora puede parecer un poco complicado pero cuando lo veamos en funcionamiento van a ver lo fácil que es. (Para intentar explicarlo por aquí para que no queden un poco en el aire, es que "externo" al script vamos a poner el nombre de la escena que vamos a cargar y esta acción va a recibir el nombre que vamos a poner afuera del script). (Ver ejemplo en la parte teórica donde añadimos lo de velocidad).

En la función añadimos la siguiente línea:
SceneManager.LoadScene(nombreEscena);

Si lo vamos escribiendo a mano, fíjense esta parte para que vayan comprendiendo un poco:

Cuando hacemos esta línea de código para cargar la escena (Load Scene), nos pide una cadena de texto con el nombre de la escena, en este caso sería el nombreEscena. Al final quedaría así:

Fíjense bien esta parte si se lee de alguna forma sería, El administrador de la escena va a cargar la escena con el nombre: x;

Ahora para guardar el script le damos a file -> Save:

Código:
using UnityEngine;
using UnityEngine.SceneManagement;
using System.Collections;


public class CargarEscena : MonoBehaviour {


    // Use this for initialization
    void Start () {
    
    }
    
    // Update is called once per frame
    void Update () {
    
    }


    public void cargarEscena(string nombreEscena){
        SceneManager.LoadScene (nombreEscena);
    }




}



Podemos mantener la ventana del editor de script abierto no hay problema.
Nos devolvemos a Unity y ahora vamos a crear un objeto de juego llamado: Clases:

Para hacer esto le damos a GameObject -> Create Empty:


En la parte de inspector le cambiamos el nombre a clases, le damos enter y ya se cambia:



Y nos queda lo siguiente:


Creamos otro objeto de juego igual que el anterior solo que ahora le llamamos CargarEscena:

Y CargarEscena lo movemos a clases.



Ahora movemos el script de CargarEscena al nuevo objeto (CargarEscena) de la siguiente manera:



Ahora vamos a añadir un botón, vamos a GameObect -> UI -> Button:


Ahora nos añade un canvas y un botón, con un evento de sistema pero no se ve el botón aquí:
http://i.imgur.com/hhH38x5.png <--- Link pantalla completa

Parece que se sale de la pantalla, como arreglo eso?
Le damos click a Canvas y en la parte de inspector aparece una parte de canvas y cambiamos el render mode a:


Screen Space - Camera

Y nos aparecerá esto:

Le damos donde apunta la flecha, y nos aparecen las cámaras que tenemos seleccionamos la Main Camera:


Y ya con esto podemos visualizar el botón en la pantalla:


Pero se ve muy pequeño...
Bueno vamos a cambiarle las escalas, en mi caso le puse estas:

Y moví el botón con la herramienta para mover (El que lee esto seguro piensa: no, voy a moverlo con la herramienta de pegar (?))

Unity tiene para configurar donde queremos que vaya un elemento de la interfaz de usuario (UI en inglés), si le damos click a ese cuadro que dice center middle nos aparecerán diferentes opciones donde podemos ubicar el elemento en este caso el botón: si en el centro, arriba a la esquina, abajo, etc. Esto para que siempre este ubicado en la misma parte independientemente de las pantallas que utilicemos (igual esto lo vamos a ver mas adelante).


Por el momento estas cosas igual no son importantes, solo queremos ver el botón y ver si funciona.

Seguimos con el botón seleccionado y en la parte de Inspector bajamos hasta encontrar esto:

Reconocen eso? Es una acción cuando el usuario da click, ya vimos lo de las funciones que llevan siempre nombre de la acción y unos paréntesis bueno esta es una función para el evento cuando le damos click. Le damos al botón +, al darle nos aparecerá lo siguiente:


Ahora le damos a ese botón seleccionado con la flecha y buscamos el objeto: CargarEscena:


Aunque también se podía arrastrar y ponerlo ahí pero bueno.
Una vez que tengamos esto nos aparece ya la clase cargada aquí:


Ahora en la parte que dice No Function nos debe aparecer algo como lo siguiente:

debemos darle a CargarEscena -> cargarEscena (string)

Luego de esto nos aparece lo siguiente:


Ahora en ese cuadro azul podemos poner el nombre de la escena a cargar, la otra escena que tengo se llama: EscenaJuego:



Ahora vamos a Game a ver si funciona (Lo mas probable es que no):


Esto es uno de los principales errores cuando uno es nuevo en esto, por eso mismo hice a propósito este error, bueno esto es debido a que no añadimos la otra escena al juego.
Para hacerlo pues primero tenemos que guardar esta que acabamos de hacer:
File -> Save Scene.

Ahora nos vamos a la carpeta Escenas:


Cargamos la EscenaJuego (Recuerden guardar antes esta escena), le damos click y ya se abre la escena

Ahora le damos a File -> Build Settings...
Y le damos a Add Open Scenes:



Y ya con esto se añade la escena:


Ahora volvemos a la escena de Menú Principal:


Y ahora probamos de nuevo el juego y vemos que ahora si nos permite cambiar entre escenas


Pero esto se los dejo a ustedes para que lo comprueben.


Ahora otra pregunta que puede surgir es como cambiarle el nombre al botón, pues bueno le damos aquí:

En el botón le damos click y nos sale el text, en la parte del inspector vemos el texto Button, que podemos cambiarlo por el que queramos.

Para la tarea, cambiar el nombre del botón por su nick.
Algo así:






Añadir Música al juego:
Spoiler


Arrastrar la música que descargamos a la carpeta de Audio en Unity:


Aunque es preferible que la música haya sido cortada con audacity o reducir su peso ya que una música en este caso mío que pese 6 megas, son 6 megas que pueden ser aprovechadas por otras cosas en el juego.

Pero como esta es solo para ejemplo da igual (?
Me descargué la primera canción que encontré en la página: https://incompetech.com/music/royalty-free/music.html

Una vez cargado el audio es sencillo, seleccionamos la main camera:


Y ahora marcamos que la música se ejecuta al inicio y que se repita (loop):


Al final quedaría así:


Y ya con esto la música estaría lista para tu juego, procede nada mas a escucharla.

Después en la parte del juego mas adelante vamos a aprender como se ejecutaría un sonido mediante script, como cuando en flappy bird pulsabas la pantalla hacía el sonido o cuando pasabas los tubos igual.





Tarea
Spoiler

Cambiar el nombre del botón por su nick. (como la última screen de la parte práctica)
Sacar una screen de la parte de música donde se ve que la añadieron
(como la última screen de la parte de música).




Mas adelante vemos todo esto con mas detalle espero que hayan aprendido y recuerden cualquier duda existe el siguiente tema: http://www.cpokemon.com/foro/threads/40233-Dudas-de-la-escuela

Con la parte de scripts me interesa que les pueda funcionar la parte de escenas que hicimos y que hayan comprendido algo al menos de la parte teórica, igual esa parte mas adelante la vamos asimilando mejor pues al inicio eso cuesta un poco, además que no soy un profesor por lo que no se como explicar bien eso, espero al menos que se haya entendido algo (?

Además debería de dejar de hacer tutoriales tan de noche, lo pensaré al siguiente (?

Espero que participen esta ocasión ya que me costó mucho trabajo traerles este tutorial fueron como 4 horas para hacerlo y lo mínimo que pido son esas 2 screen que puse para tarea.
Si ya no lo hacen me decepciono mas de lo que ya estoy y cierro la escuela.

@Overly. @Exerux @juan459 @JhonnPenguin @EthanBarush @Matthew Crown @Mishu @NEET Samurai

Saludos

Edito: Se me olvidó poner: tienen tiempo hasta el 25 de Noviembre (Viernes) a las 23:59 (-6 zona horaria) para subir las tareas ya que el día siguiente tengo pensado hacer la siguiente parte y si no veo interés pues entonces no seguiría.
Spoiler



Spoiler






Smile!










#Creyente de Karla