sábado, 25 de julio de 2015

Arreglos o Arrays en unity

En esta parte realizaremos pruebas con los Arrays que son tipos de datos estructurados que nos permite almacenar un conjunto de datos homogeneos que no es mas que datos del mismo tipo y relacionados, estos tipos de datos pueden ser numeros enteros, flotantes, caracteres o tambien gameobjects para su alamacenamiento y coleccion.

Para este ejemplo prepararemos el entorno para poder trabajar con ello

1.- Primeramente si estas trabajando en un entorno puramente 3D sera necesario que cambies a una vista 2D que es con la que trabajaremos, para ello le daremos en el boton 2D, si ya estas trabajando en una vista 2D no sera necesario cambiar nada.



2.- Una vez que cambiemos de vista crearemos 3 GameObject vacios, cuando creemos un gameobject lo colocaremos  en la posicion 0, 0, 0 para asi despues poder trabajar con ellos, el primero lo renombraremos Orco y lo colocaremos en la posicion -10, 0, 0, el segundo sera un Duende y lo colocaremos en la posicion 0, 0, 0, el tercero lo renombramos Mago Oscuro y estara en la posicion 10, 0, 0 y siempre para identificar nuestros gameobject nos situaremos en el icono de un cubo de colores y le podremos asignar un color. 





3.-  Ahora crearemos para nuestros enemigos un Tag que se encuentra en el inspector, para ello seleccionamos uno de ellos y le daremos en Tag y despues Add Tag, despues le daremos un nombre que se llamara Enemigo.



4.- Seleccionaremos los gameobject y le daremos en tag en cada uno de ellos y escogeremos el Tag Enemigo que acabamos de crear.



5.- Una vez que hemos preparado el entorno comenzaremos a realizar nuestro script, para ello creamos un C# script,  lo llamaremos Enemigos, en el crearemos los arrays, para este ejemplo sera un arreglo de objetos o GameObject que es nuestro caso, a continuacion el codigo.


6.- Una vez terminado crearemos otro gameobject vacio con el cual le asignaremos el script que acabamos de crear, si observamos nuestro inspector podemos ver que nuestro array no tiene elementos.



7.- Ahora si le damos reproducir y observamos nustro inspector podemos ver claramente que los datos que tienen el Tag de Enemigo apareceran en la lista y en la consola saldra en que indice o numero de la lista se encuentra y su nombre.



Practica siempre para ir mejorando, la repetición y la constancia nos ayudan a mejorar, recuerda cada vez lo harás mejor, si te equivocas esta bien, permitirse equivocarse es la clave de mejora continua, así que permítete equivocarte mas seguido.

Si te gusta este sitio y deseas que esto continué vivo tu apoyo sera importante, puedes dar clic en la publicidad si lo deseas o puedes donar algo en Patreon si puedes permitírtelo, con esto el proyecto empezara a tener un objetivo y dejara de navegar sin rumbo y empezara a convertirse en una comunidad que ayudara unos a los otros, saludos y excelente día.

Ciclo For en Unity


En este apartado mostrare los ciclos for en unity, el ciclo for o tambien conocidos como bucles se utiliza para realizar repeticiones, cuando uno conoce las veces que se va a repetir una accion deseada, para ello necesitamos conocer como se manejan, el ciclo for esta compuesto por 3 partes, la inicializacion que es el comienzo del ciclo que vamos a iniciar, la segunda parte la compone la condicion o limite que seran las instrucciones para llevar a cabo el ciclo, la ultima parte sera el incremento o decremento que efectuara el ciclo entre la cantidad de pasos de incremento o decremento hasta cumplir la condicion.

1.- Crearemos un gameobject vacio en nuestro espacio 3D el cual nos servira para que le asignemos nuestro script.

2.- Crearemos un C# script para representar el codigo del for para ello llamaremos InventarioArmas a nuestro script y le daremos doble clic para entrar al monodevelop.

3.- Simularemos un ciclo for el cual estara en una funcion que se llamara BuscarEnemigos el cual tambien simularemos como si estuvieramos a una distancia de un enemigo y mostraremos un mensaje si lo estamos mediante una variable entera que estara en el ciclo for, la funcion se efectuara cada vez que le demos la barra espaciadora, a continuacion el codigo.

InventarioArmas.cs

using UnityEngine;
using System.Collections;

public class InventarioArmas : MonoBehaviour {

 //Creamos una variable entera donde definiremos el numero de arma
 //que corresponde
 public int arma = 0;

 //variable para el nombre del arma
 public string nombreArma;

 public int enemigoDistancia = 0;
 
 void Start () 
 {
 
 }

 void Update ()
 {
  //Realizaremos una condicion que cuando el jugador le presione
  //la barra espaciadora escoja el arma.
  if(Input.GetKeyUp("space"))
  {
   //mandamos a llamar a nuestra funcion
   BuscarArma();

   //Cada vez que le de la barra mostrara ademas el mensaje de lo encontrado
   MostrarMensaje();

   //Cada vez que le demos a la barra simularemos buscar un enemigo
   BuscarEnemigo();
  }
 }

 //Esta es nuestra funcion para buscar un arma en el inventario
 void BuscarArma()
 {
  //Escogeremos un arma de nuestro inventario de manera aleatoria.
  arma = Random.Range(1, 7); //se manejara un rango de 1 a 5
  
  switch( arma )
  {
   //Se manejaran varios tipos de armas dependiendo el numero que toque de manera aleatoria
  case 1:
   nombreArma = "Espada";
   break;
  case 2:
   nombreArma = "Lanza";
   break;
  case 3:
   nombreArma = "Acha";
   break;
  case 4:
   nombreArma = "Escudo";
   break;
  default:
   print ("No encontraste nada");
   nombreArma = "";
   break;
  }
 }

 //Creamos otra funcion donde te mostrara un mensaje
 void MostrarMensaje()
 {
  //colocaremos una condicion de que cuando el numero de arma
  //sea menor a 5 que coloque el nombre del arma
  if(arma < 5)
  {
   print ("Tu encontraste un(a) " + nombreArma);
  }
 }

 void BuscarEnemigo()
 {
  //creamos nuestro ciclo for
  for( int i = 0; i < 5; i++ )
  {
   //Crearemos una distancia aleatoria para simular que tan lejos o cerca 
   //se encuentra el enemigo
   enemigoDistancia = Random.Range(1, 10);

   //Crearemos 3 condiciones para simular la situacion en la que nos 
   //encontramos con el enemigo en cuestion
   if( enemigoDistancia >= 8 )
   {
    print ("El enemigo se encuntra demasiado lejos");
   }

   if( enemigoDistancia >= 4 && enemigoDistancia <= 7 )
   {
    print ("El enemigo se acerca poco a poco");
   }

   if( enemigoDistancia < 4 )
   {
    print ("El enemigo esta respirando en tu cara");
   }
  }
 }
}



4.- Asignamos el script al gameobject y le daremos reproducir,  en la pantalla azul le daremos la barra espaciadora, primero nos aparecera un arma que hayamos encontrado y poco despues la simulacion al encontrarnos con un enemigo.



Funciones en Unity

En este ejemplo realizaremos funciones en unity que no son mas que un grupo de instrucciones con un objetivo particular y que se ejecuta al ser llamada desde otra funcion o procedimiento segun su definicion.

Basicamente las funciones pueden recibir datos desde fuera al ser llamadas a traves de los parametros y deben de entregar un resultado.

Ya hablando de terminos mas generales las funciones deben tener un nombre unico, un tipo de dato de resultado y una lista de parametros si la funcion asi lo necesitase.

Pues bien para este ejemplo crearemos un script que sera nuestro inventario de armas y crearemos una funcion que nos ayude a buscar dentro de ese inventario de armas para ello seguiremos los siguientes pasos.

1.- Crearemos un GameObject vacio y lo colocaremos en nuestro espacio 3D este nos servira para que en el coloquemos nuestro script.

2.- Crearemos un C# script al cual llamaremos InventarioArmas y le daremos doble clic para iniciar el monodevelop.

3.- Insertaremos el siguiente codigo.

InventarioArma.cs

using UnityEngine;
using System.Collections;

public class InventarioArmas : MonoBehaviour {

 //Creamos una variable entera donde definiremos el numero de arma
 //que corresponde
 public int arma = 0;

 //variable para el nombre del arma
 public string nombreArma;
 
 void Start () 
 {
 
 }

 void Update ()
 {
  //Realizaremos una condicion que cuando el jugador le presione
  //la barra espaciadora escoja el arma.
  if(Input.GetKeyUp("space"))
  {
   //mandamos a llamar a nuestra funcion
   BuscarArma();

   //Cada vez que le de la barra mostrara ademas el mensaje de lo encontrado
   MostrarMensaje();
  }
 }

 //Esta es nuestra funcion para buscar un arma en el inventario
 void BuscarArma()
 {
  //Escogeremos un arma de nuestro inventario de manera aleatoria.
  arma = Random.Range(1, 7); //se manejara un rango de 1 a 5
  
  switch( arma )
  {
   //Se manejaran varios tipos de armas dependiendo el numero que toque de manera aleatoria
  case 1:
   nombreArma = "Espada";
   break;
  case 2:
   nombreArma = "Lanza";
   break;
  case 3:
   nombreArma = "Acha";
   break;
  case 4:
   nombreArma = "Escudo";
   break;
  default:
   print ("No encontraste nada");
   nombreArma = "";
   break;
  }
 }

 //Creamos otra funcion donde te mostrara un mensaje
 void MostrarMensaje()
 {
  //colocaremos una condicion de que cuando el numero de arma
  //sea menor a 5 que coloque el nombre del arma
  if(arma < 5)
  {
   print ("Tu encontraste un(a) " + nombreArma);
  }
 }
} 


4.- Asignamos el script y se lo pasamos al gameobject, le daremos reproducir y en el espacio de color azul le daremos la barra espaciadora para ver las armas que vamos encontrando.



jueves, 23 de julio de 2015

Sentencias Switch en Unity

Ahora veremos las sentencias switch, las sentencias switch nos permiten crear multiples opciones y escoger estas opciones mediante condiciones mas detalladas y mas concretas. Para este ejemplo demostrare como hacer una sentencia switch.

1.- Crearemos un C# script lo llamaremos InventarioArmas y le daremos doble clic para entrar al monodevelop

2.- Escribimos el siguiente codigo.



3.- Crearemos un gameobject vacio en nuestro espacio en 3D, entonces con el script ya terminado, guardamos el script y le asignaremos nuestro script, ahora probamos para recibir multiples mensajes dependiendo el numero que nos aparesca.



 









lunes, 6 de julio de 2015

Sentencias If en unity

En esta ocasion usaremos las sentencias if para poder realizar condiciones y agregarle logica a un programa o juego que estemos realizando, para ello tenemos que poner ciertas condiciones para que se evalue una pieza de codigo y ejecute tales acciones, para ello usamos las sentencias if.

1.- Crearemos una carpeta que llamaremos script, dentro de la carpeta crearemos un script que llamaremos automovil, en la escena crearemos un gameobject vacio para poderle asignar el script y abrimos el siguiente codigo.

2.-  En este codigo crearemos el recorrido de un automovil el cual tendra variables como la distancia, velocidad y tiempo, pero tambien para poder usar condiciones agregaremos velocidad maxima y minima y pondremos de condicion de que si se pasa el limite o este es mas bajo de lo normal poner un mensaje. A contunuacion el codigo.



3.- Ahora probaremos multiples valores para poder ver las condiciones en accion, prueba con una velocidad estable, con una minima y con una que exceda la velocidad.




Operadores de comparacion y logicos

Empezaremos definiendo los operadores de comparacion que nos ayudan a determinar si se cumplen ciertos criterios entre un valor y otro y los operadores logicos que nos sirven para ver condiciones de valores.

Operadores de comparacion:

==  - Compara los valores para saber si son iguales
!=  - Si los valores no son iguales
< - Es mayor que
> - Es menor que
<= - Es menor o igual a
>= - Es mayor o igual a

Operadores Logicos:
&& - And o Y - ejemplo Verdadero y Verdadero
| | - Or u O - ejemplo Verdadero o Falso
! - Not o Negacion - Ejemplo No es Verdadero

1.- Crearemos una carpeta llamada script, craeremos un nuevo script llamado automovil y agrearemos un gameobject vacio para asignarle el script, abrimos el script.

2.- Realizaremos un script de la velocidad de un automovil con las variables de velocidad, tiempo y distancia y realizaremos la operacion de la misma para imprimir el mensaje de cuantos kilometros recorrio tambien pondremos una condicion usando operadores logicos y de comparacion para determinar si el carro excedio el limite de velocidad, a continuacion el codigo.



3.- Asignamos el script a nuestro gameobject y cambiamos los valores de manera de que cumpla la condicion que programamos.


4.- Ahora le damos reproducir para ver nuestro mensaje al cumplir la condicion.



Operadores de asignacion y aritmeticos en unity

Los operadores aritmeticos y de asignacion no son mas que operadores que nos ayudan entender la logica de un programa.

Los operadores de asignacion son:

=  es la asignacion de un valor y otro.
+= asignacion de un numero positivo ejemplo x = x + y
-= asignacion de un numero negativo ejemplo x = x - y
*= asignacion de la multiplicacion de un numero ejemplo x = x * y
/=  asignacion de una divicion de un numero ejemplo x = x / y
%= asignacion del modulo de un numero ejemplo x = x % y

Los operadores aritmeticos son:

+  -  suma de numeros
-  - resta de numeros
* - multiplicacion de numeros
/ - divicion de numeros
% - modulo de un numero, por ejemplo 10 / 2, el resultado seria 5 pero su modulo seria 0.
++ - es incremento
--  es decremento

1.- Crearemos una carpeta que se llame scripts, y luego dentro de la carpeta crearemos un script que se llame operadores, le daremos doble clic para iniciar monodevelop, tambien agregaremos un gameobject vacio que nos servira para asignarle nuestro script, si aun no sabes estos pasos puedes revisar la siguiente liga.

enlace

2.- Ahora crearemos la programacion de este ejemplo para ello realizaremos un ejemplo que simule la velocidad de un automovil, para ello pensaremos en variables tales como la velocidad, el tiempo y la distancia. A continuacion el codigo, podemos poner private  a velocidad para no manejar su valor.


3.- Ahora asignamos el script al gameobject y cambiaremos los valores en el inspector.



4.- Le damos reproducir y vemos nuestra operaciones funcionando correctamente.


Variables Unity

1.- Crearemos una carpeta de scripts y crearemos un script al cual llamaremos variables  tambien crearemos un GameObject vacio siguiendo los pasos del ejemplo anterior

  enlace

2.- Le daremos doble clic para entrar al monodevelop y declarar unas cuantas variables, para ello crearemos public para que sean visibles, las palabras reservadas tienen un color agregado asi que no se podran usar como nombre de nuestras variables a las cuales se le tiene que poner un nombre concreto, poner un nombre que se asemeje a lo que estamos creando, las buenas practicas de programacion nos dice esto y que ademas usemos el primer nombre en minuscula y si son dos palabras la segunda puede ir en mayuscula ejemplo velocidadMaxima, cuando terminemos de declarar nuestras variables debemos colocar punto y coma ";" para terminar cualquier declaracion. Tener cuidado como nombras variables ejemplos de como no declarar variables lkasjdf, 124Maxima, ya que si declaramos asi nuestras variables obtendremos unos cuantos errores.

3.- Agregaremos una variable entera, punto decimal, falso y verdadero y de objetos usados en unity.
    A continuacion el codigo.





4.- Asignamos nuestro script a nuestro gameobject y podemos notar en el inspector nuestros valores, ya que los declaramos como public, si lo declaramos como private notaremos que no podemos manipularlo mas en nuestro inspector, hacer la prueba para que notes este cambio y escojas tu manera de trabajar con las variables.


HolaMundo en Unity

1.- Creamos una carpeta que se llame scripts, dando clic derecho en assets y create -> folder







2.- Entramos a nuestra carpeta y le daremos clic derecho Create -> C# script y lo renombramos mensaje




3.- Daremos doble clic al script y nos abrira el monodevelop que es un editor de texto para realizar
    nuestros scripts.


4.- Ahora agregaremos lo siguiente al script.


5.- Cerramos el monodevelop y nos vamos a la pestaña de GameObject y crearemos un GameObject vacio al cual renombraremos como prueba.








6.- Ahora asignaremos el scrip a nuestro gameobject para ello arrastramos el script hacia nuestro inspector seleccionando nuestro gameobject.




7.- Para terminar daremos en reproducir y nos situaremos en la ventana de la consola para ver nuestro mensaje.