Fig. 5.8
4. Operadores lógicos y de comparación
Los operadores lógicos sirven para obtener dos resultados verdadero o falso estos resultados se les conoce también como valores Booleanos. A continuación te muestro las operaciones:
&& | And (y) | La operación seria verdadero y falso = falso |
|| | Or (o) | La operación seria verdadero o falso = verdadero |
! | Not (no) | La operación seria verdadero no = falso |
No tienes que memorizarlo simplemente debes saber que son y para que sirven. A continuación te muestro los operadores de comparación que nos permiten comparar valores en general.
== | igualdad | 5==5 |
!= | desigualdad | 4!=0 |
> | Mayor que | 10>2 |
< | Menor que | 2<10 |
>= | Mayor o igual que | X >= 10 // La x puede ser 10 o mayor que 10 |
<= | Menor o igual que | X <= 10 // La x puede ser 10 o menor que 10 |
Este apartado es una especie de esquema en donde te muestro los operadores lógicos y de comparación en el siguiente apartado vamos a ponerlos en practica.
5. Crear declaraciones lógicas con if - else
En la vida diaria tomamos decisiones a cada momento un café (solo o con leche, con azúcar o sacarina etc). Según nuestra toma de decisiones suceden acontecimientos, es decir, imagínate tu personaje en una gruta con dos posibles salidas; la salida de la izquierda o la salida de la derecha.
Resulta que si escoges la de la derecha encuentras el tesoro y si escoges la salida izquierda se te come un dragón. De eso se encarga la declaración if, de comparar situaciones o valores y darnos un resultado según nuestra decisión.
Para declarar un if debemos escribirlo de la siguiente forma:
if (x>0){Lo que sucede si se cumple la comparación del if ;}else{Si no se cumple el if pasara esto ;} |
Vamos a crear un script llamado Comparaciones.cs. En este ejemplo vamos a comparar las mejores puntuaciones de un juego. Tenemos 1 jugadores con 1 puntuación que podremos variar. Si el resultado de estas puntuaciones es >=100 el resultado es Experto si el resultado es >= 50 y <100 el resultado es intermedio y si no se cumple lo anterior es principiante.
Script: Comparaciones.cs |
using System.Collections;using System.Collections.Generic;using UnityEngine;public class Comparaciones : MonoBehaviour{private int puntuacion = 35;// Puedes poner el valor que quierasvoid Update (){if (puntuacion >= 100){Debug.Log (“Experto”);} else if (puntuacion < 100 && puntuacion >= 50){Debug.Log (“Intermedio”);}else{Debug.Log (“Principiante”);}}} |
El siguiente script cuando lo ejecutes en Unity podrás variar la puntuación y en la consola te irán apareciendo los distintos resultados posibles.
Fig. 5.9
6. Crear declaraciones con switch
El switch nos permite tomar de una sola variable su valor y realizar múltiples operaciones dependiendo del valor de la variable.
Para declarar un switch debemos hacerlo de la siguiente manera:
Switch (variable){case “valor1”:Debug.Log(“Sucede algo”);break;case “valor2”:Debug.Log(“Sucede algo”);break;default:break;} |
Vamos a realizar un ejercicio muy básico para mostrar las posibilidades de switch. Imagínate que tenemos dos valores para una variable el valor 1 y el valor 2 y queremos que cuando tengamos el valor 1 nuestro personaje tenga una pistola y cuando la variable tenga el valor 2 tenga una escopeta. Para realizar el ejercicio crea un script con el nombre Switch.cs y lo añadimos al cubo, asegúrate de borrar el otro script de la ventana inspector para que solo tenga este script.
Script: Switch.cs |
using System.Collections;using System.Collections.Generic;using UnityEngine;public class Switch : MonoBehaviour{public int arma;void Start (){switch (arma){case 1:Debug.Log(“Pistola”);break; |
case 2:Debug.Log(“Escopeta”);break;default:Debug.Log(“Nada”);break;}}} |
En la ventana inspector puedes poner el valor uno y te en la consola te mostrará una pistola y si pones el valor 2 te mostrará escopeta, si pones un valor distinto te mostrará el mensaje por defecto que es nada.
Fig. 5.10
7. Trabajar con loops
Un loop es un bucle una repetición de una condición o serie de condiciones un cierto número de veces o hasta que se cumpla una alguna de estas condiciones. Tenemos que tener cuidado con los loops porque si nos equivocamos podemos crear un loop infinito y bloquear Unity.
While
El primero de los loops que vamos a ver es While que nos permite crear un bucle hasta que se cumple la condición.
Variable = 0;while (variable <= 10){Debug.Log(variable);variable++;} |
Primero declaramos una variable con un valor en este caso 0.Le decimos a while que la condición es que mientras el valor de la variable sea menor o igual a 10 nos muestre por consola el valor de variable pero para que no sea un bucle infinito el valor de la variable tiene que incrementarse 1 cada vez por eso se le añade variable++ |
#Ejemplo1 para Unity
Crea un script con el nombre While.cs. Vamos a crear un script que nos muestre las tablas de multiplicar.
Script: While.cs |
using System.Collections;using System.Collections.Generic;using UnityEngine;public class While : MonoBehaviour{private int valor = 0;public int tabla;private int resultado;void Start (){while (valor <= 10){resultado = valor * tabla;Debug.Log (valor+” x “+tabla+” = “+resultado);++valor;}}} |
Ahora si vamos a Unity debemos poner el valor de la tabla que queremos que nos muestre por consola por ejemplo la tabla del 4 y al ejecutar el juego en la consola se nos mostrará la tabla del cuatro.
Fig. 5.11
For
El loop for nos permite definir su valor, su limite y su incremento. Es otro loop que podemos utilizar, para escribirlo debemos hacerlo de esta manera:
for(x=0; x<= 10; x++){Debug.Log (x);} |
El for contiene una variable x que es igual a 0 en un principio, después tiene la condición de que x tiene que ser menor o igual a 0 y para finalizar este valor se ira incrementando. Cada vez que se cumpla se mostrara en consola el valor de x.Esto quiere decir que se repetirá 10 veces y que por consola se nos va a mostrar los valores 0,1,2,3,4,5,6,7,8,9,10. El valor 10 es el ultimo ya que el valor 11 sería mayor que 10 y no se cumpliría la condición de x<=10. |
Ahora que sabemos como utilizar el loop for vamos a realizar el mismo ejemplo que con el loop While de manera que crearemos un script que nos muestre las tablas de multiplicar según el valor de la tabla que queramos.
Script: For.cs |
using System.Collections;using System.Collections.Generic;using UnityEngine;public class For : MonoBehaviour{public int tabla;private int resultado;private int valor;void Start (){for(valor=0; valor<= 10; valor++){resultado = valor * tabla;Debug.Log (valor+” x “+tabla+” = “+resultado);}}} |
El resultado debería ser exactamente igual al del ejemplo While descrito anteriormente.
8. Crear y llamar funciones
Ahora que sabemos qué son las variables, cómo podemos operar con ellas tomar decisiones y crear repeticiones según nuestras decisiones, vamos a comprimirlo todo en una función que nos permite contener