Las variables son unidades de memoria donde se guarda una información sobre algo, esta información puede estar en un formato u en otro. Habíamos visto las variables Int y String pero existen muchas más variables.
En el ejercicio de hoy vamos a continuar con las variables vistos anteriormente y como trabajar con la instrucción de la condicional con estas dos variables.
Las dos variables que usamos son la variable String de texto que tiene el nombre de texto1 y el valor de Hola a todos que nos aparece como un comentario que se verá en el programa una vez que se ejecute
A continuación escribiremos las siguientes líneas de código para poder trabajar con el método de las condicionales:
Las condiciones son una parte básica de la lógica de la programación de nuestro Script en Unity.
Suele empezar con la palabra If que significa si se cumple un hecho hará algo:
En este caso si el numeroEntero es igual a 1 se le asigna que diga el nombre texto1 que esta inicializado previamente tal y como se ve en la instrucción.
Inicializamos dos variables de tipo texto o string que usaremos en nuestra condición:
Si el numero que aparece es igual a 1, es decir si se cumple la condición, lo que le decimos es que en la ejecución de la condición nos de el valor de texto1 que es igual a Hola a todos mientras que si no se cumple lo que le decimos es que nos del el valor de texto2 Adios a todos
Como hemos inicializado que la variable int sea igual a cero cuando se ejecute nuestra condición nos dará el resultado de Adios a todos cuando iniciemos nuestro videojuego
A continuación cambiamos el valor de la variable int al valor igual a 1 y probamos que funciona bien la condición al iniciar nuestro videojugo. Probamos ambas instrucciones
ANEXO DE LA PROGRAMACIÓN EN UNITY:
Conceptos básicos de la base de programación dentro de Unity
Ahora que tenemos una base aprendamos los 4 principios básicos del scripting, que son:
- Variables
- Funciones
- Condicionales
- Bucles
Vamos a desglosar cada elemento de nuestros scripts:
– Las variables son contenedores, podremos almacenar información en ellos para usarla mas tarde.
– Las funciones son partes reutilizables de código que pueden ser ejecutadas llamando al nombre de la función.
– Los condicionales(como IF,ELSE IF,ELSE) nos permiten seleccionar de un número de condiciones.
– Con los bucles podemos repetir continuamente el mismo bloque de código mientras se cumplan unas condiciones
Aquí tenéis ejemplos de declaración de los distintos tipos de variables:
int = 1;
float = 50.25;
String =”Bienvenido a Unity Spain”;
boolean = false;
En nuestro primer ejemplo hemos declarado una variable entera, que puede ser usada para almacenar cualquier número como el nivel del jugador, o cuantas piezas de oro ha conseguido el mismo.
En el segundo ejemplo hemos declarado una variable float que contiene números con punto decimal, que puede ser usado para almacenar, por ejemplo, la distancia entre dos objetos.
En el tercer ejemplo hemos declarado una variable de tipo cadena o string que contiene texto, fijate en como el texto, a diferencia de los otros valores, va entre comillas; esto es muy importante para las variables de tipo cadena.
Por último hemos definido una variable de tipo boolean que contiene un valor verdadero o falso (True o False) que puede ser usado para activar/desactivar algo, como por ejemplo si el jugador se esta moviendo o no
Las funciones son partes reutilizables de código.
Unity tiene funciones reservadas, que son funciones incluidas en Unity y pueden ser llamadas usando sus nombres.
Dos funciones reservadas son muy importantes, “start()” y “update()”.
La función start() se ejecuta una vez se llama al script, update() se ejecuta continuamente en cada frame.
Usare la función start() para demostrar cual es la estructura básica de una
función:
function start()
{
}
Lo primero de todo debe ser siempre la palabra “function” a la hora de declararla. Entonces tenemos { y } al inicio y al final.Todo lo que está entre esos corchetes es la función, muy sencillo.
Casi siempre tendremos una función start() o update() en un script.
También puedes crear tus propias funciones de la misma forma, declarando- las igual.
Cuando quieras usar una función que hayas declarado la llamamos en el script escribiendo su nombre seguido de “()”.
Usamos los condicionales para seleccionar entre múltiples eventos dependiendo de una o más condiciones.
Los condicionales se usan con frecuencia en cualquier juego, ya que siempre necesitaremos seleccionar entre diferentes opciones basándonos en condiciones. Aunque las posibilidades y los usos de los condicionales son muchas, aquí tienes algunos ejemplos de donde se pueden usar:
- Para detectar si un botón ha sido pulsado
- Para detectar la vida del jugador y continuar si el jugador esta vivo o morir si la vida alcanza o.
- Para cambiar interruptores
- Para realizar distintas acciones dependiendo de la acción del usuario
- Para detectar si una partida guardada existe y se ha cargado correctamente.
- Para validar formularios
Lo más común es usar el condicional IF, que será el primero que veamos.
Los condicionales If son probablemente los más comunes. Son sencillos de programar, aceptan parámetros sencillos o múltiples y también aceptan los condicionales else y else if para selecciones múltiples.
Veamos algunos condicionales If sencillos para mostrar como es la sintaxis y como se usan:
Parámetros sencillos
if(Input.GetButtonDown(“Jump”))
{
código para hacer que el personaje salte }
Este código es la formas más sencilla de usar un condicional IF. Solo se ha pasado un parámetro (en este caso, un opción de entrada(el botón ha sido etiquetado como “Jump”)). Si el botón Jump ha sido pulsado, activara este condicional con un valor true y entonces se ejecutará el código entre {}.
Cuando pasamos un valor sencillo a un condicional IF, comprobará un resultado true/false.
En el caso anterior, comprueba si el parámetro es “trae”, si queremos comprobar si el parámetro es falso usamos el operador “not”, así:
if(!Input.GetButtonDown(“Jump”))
{
el código que se ejecutará cuando el personaje no este saltando.
}
El ! antes del operador indica a Unity que quieres saber si el parámetro que pasamos esta retornando un valor nulo o esta vacío.
Ahora vamos a comprar múltiples parámetros.
Para empezar, declaramos dos variables al inicio del script (antes del Start() o la función
Update())
var variable1: int =1; var variable2 : int = 0;
Entonces creamos la función start: function start()
{
}
Y dentro de la función start() colocamos el siguiente código:
if(variable 1> variable2)
{
print(“La variable 1 es mayor que la variable 2”);
}
Este ejemplo compara dos variables para ver si la primera es mayor que la segunda, si esto se cumple el código entre corchetes se ejecuta. Cuando comparamos variables podemos usar varios operadores:
‘>’ A es mayor que B
‘<‘ A es menor que B
‘==’ A es igual a B
‘!=’ A no es igual a B
‘>=’ A es mayor o igual a B
‘<=’A es menor o igual a B
Else y Else If
En los IF anteriores todo era simple, hacíamos una condición simple, pero que ocurre si queremos hacer cosas diferentes según los valores, por ejemplo, si la primera variable contiene un 5 queremos hacer una cosa, si contiene un 3 queremos hacer otra y si hay otro valor, otra.
Haremos esto usando ELSE y ELSE IF, veamos un ejemplo:
if(variablei == 5)
{
print(“vari es 5”);
}
else if(variablei == 3)
{
print(“vari es 3”);
}
else
{
print(“var 1 es otro valor”);
}
En este ejemplo, el primer bloque de código se ejecutará si la primera variable es igual a 5, el segundo bloque si es igual a 3 y el último bloque si la variable contiene otra cosa.
Puedes tener tantos if como quieras, para selecciones más complejas.
if(variablei == 5)
{
print(“vari es 5”);
}
else
{
if(variablei == 3)
{
!!print(“vari es 3”);
}
else
{
!! print(“var 1 es otro valor”);
}
}
En este ejemplo hemos anidado dos condicionales IF. Anidar nos permite segmentar los condicionales
Si has programado alguna vez usando otros lenguajes ya conocerás los condicionales switch/ case. Estos condicionales nos permiten tomar una sola variable y realizar múltiples operaciones dependiendo de lo que contiene la variable.
Aquí tenéis un ejemplo simple:
switch(una variable)
{
case A:
! ! funcioncualquiera();
! ! break;
case B :
! ! otrafuncion();
! ! break;
default:
! ! break;
}
El condicional switch toma la variable y realiza uno de los tres eventos dependiendo del valor de la variable. Si la variable contiene A entonces se ejecutara funcioncualquiera(). Si la variable contiene B, entonces se ejecutara otrafuncion(), si no es ninguna de las dos se utilizara la operación default. “Break” detrás de cada case detiene el script en ese punto, por lo que los condicionales case son recomendables en escenarios específicos.
BUCLES
Los bucles nos permiten repetir bloques de código hasta que se cumplan ciertas condiciones. Veamos los tipos básicos de bucles y como implementarlos.
Antes de empezar, crea un nuevo script y adjuntalo a un objeto vacío en la escena. Después asegurate de que tiene una función Start() y no Update. Obviamente puedes usar blucles en la función Update() de la misma forma, pero para el propósito de este tutorial usaremos la función start()
function Start()
{
}
A través de este apartado iremos comentado código, simplemente incluyelo entre los corchetes a no se que diga otra cosa.
Los bucles while nos permiten repetir código. Esto se usa normalmente para leer arrays de datos (como cuando lees un archivo que has cargado). Veamos un bucle while sencillo que incrementará un contador en cada ciclo hasta que el contador llegue a 10.
Antes de la función Start(), declara la siguiente variable:
var contador : int = 0;
Ahora, dentro de la función start(), colocamos el siguiente código:
while(contador <= 10)
{
print(“Contando” + contador); contador++;
}
Después de esto, ejecuta el juego. Probablemente veras “contando 10” en la pantalla ya que se repetirá tan rápido que no veras el incremento. Para el juego y abre la consola, verás la cuenta desde 0 hasta 10. El bucle while ha ejecutado el print hasta que el contador ha llegado a 10.
Se ha usado:
“contador++;” en lugar de “contador = contador + 1;”,
Contador++ es una forma más simple de hacer lo mismo.
Como puedes ver, los bucles while son muy simples de crear, solo recuerda asegurarte de que tu bucle alcance la condición que lo detiene o el código se repetirá en un bucle infinito llegando incluso al punto de que el ordenador detenga la ejecución.
Otro tipo de bucle es el bucle for, a diferencia del bucle while, en el que definimos unas variables y una condición que detiene el bucle dentro del bucle, con los bucles for podemos definir las condiciones y el incremento sin salir de la inicialización del bucle.
Estos bucles se usan especialmente para contadores o otros bucles de tipo incremental. Remplaza el código en la función Start() con el siguiente código:
for(var contador = 0; contador <= 10; contador++)
{
print(“Contando” + contador);
}
Con los bucles for definimos más parámetros en la inicialización del bucle, estos son: for (valor_de_inicio; condición_para_detener ; incremento)
El código hace exactamente lo mismo que nuestro bucle while.
Con esto terminamos con los bucle