Bienvenido a un nuevo codelab de nuestro curso sobre desarrollo de aplicaciones XR, en esta ocasión vamos a aprender operadores lógicos y relacionales, para formar expresiones lógicas y relacionales en C#, de esta manera podrás complementar y mejorar la lógica de tus juegos en Unity.
Para empezar, recordemos que una expresión es una combinación de variables y operadores que permiten obtener información.
Una expresión relacional es aquella que utiliza operadores relacionales. Las expresiones lógicas, por su parte, son expresiones un poco más complejas que se componen de expresiones relacionales, variables, y operadores lógicos para evaluar dichas condiciones.
A lo largo de este codelab aprenderás sobre dichos operadores y expresiones, con ejemplos de cómo crearlas.
Los operadores relacionales se utilizan para comparar valores. Cuando se construye una expresión relacional a partir de ellos, el resultado es un booleano. Los operadores relacionales que tenemos son los siguientes:
== | Es igual a |
!= | Diferente de |
> | Mayor que |
< | Menor que |
>= | Mayor o igual que |
<= | Menor o igual que |
Supongamos que vamos a ponerle un precio a las frutas del huerto, para ello vamos a definir los precios de una manzana y de un tomate. Luego, compararemos los precios para ver qué información obtenemos.
int
precio_manzana
= 1000;
int
precio_tomate
= 500;
Puedes comparar entre las dos variables declaradas.
precio_manzana == precio_tomate; //False, dado que las variables no son iguales
precio_manzana != precio_tomate; //True, dado que efectivamente son diferentes
Puedes comparar una variable con un valor numérico
precio_manzana > 500; //True, dado que el valor de la variable es mayor a 500
precio_manzana < 1000; //False, dado que el valor de la variable no es menor de 1000. Cabe anotar que este operador compara si es estrictamente menor.
Puedes comparar una variable con expresiones aritméticas
precio_manzana >= (precio_tomate * 2); //True, dado que el valor de la variable precio_manzana es igual a la multiplicación de precio_tomate por 2. Cabe anotar, que este operador compara si es mayor o igual.
precio_tomate <= (precio_manzana - 600); //False, dado que el valor de la variable precio_tomate es mayor que la resta de la variable precio_manzana menos 600.
____________________________________________________________________
Puedes crear un script y asociarlo a un GameObject para probar este código. Este script se vería así:
using UnityEngine;
public
class
CompraFrutas : MonoBehaviour
{
int
precio_manzana = 1000;
int
precio_tomate = 500;
void Start()
{
Debug.Log(precio_manzana != precio_tomate);
}
}
Los operadores lógicos al igual que los relacionales, producen un resultado booleano, esto lo hacen combinando múltiples condiciones lógicas.
Una operación lógica que permite unir dos expresiones por un "Y" o "AND" es la conjunción, este se representa por && en C#. Este operador evalúa una expresión con dos o más condiciones y retorna Verdadero o True solo si todas las son verdaderas.
Condición 1 | Operador | Condición 2 | Resultado |
True | && | True | True |
True | && | False | False |
False | && | False | False |
Teniendo en cuenta el ejemplo de los precios del tomate y la manzana, vamos a crear expresiones utilizando los operadores lógicos. Supongamos que una persona quiere decidir si debe comprar tomates basándose en su precio en comparación con el precio de las manzanas y en la cantidad disponible de tomates.
int
precio_tomate = 500;
int
precio_manzana = 1000;
int cantidad_tomates_disponibles = 15;
(precio_tomate <= precio_manzana) && (cantidad_tomates_disponibles > 10)
En el ejemplo anterior la persona compraría los tomates, esto porque la primera expresión (precio_tomate <= precio_manzana)
es verdadera y la segunda expresión (cantidad_tomates_disponibles > 10)
también es verdadera.
Una operación lógica que permite unir dos expresiones por un "O" o "OR" es la disyunción, este se representa por || en C#. Este operador resulta Verdadero o True si alguna de las condiciones es verdadera.
Condición 1 | Operador | Condición 2 | Resultado |
True | || | True | True |
True | || | False | True |
False | || | False | False |
Ahora, supongamos que una persona quiere comprar tomates basándose en si son más económicos que la manzana o que la pera.
int
precio_tomate = 500;
int
precio_manzana = 1000;
int
precio_pera = 450;
(precio_tomate <= precio_pera) || (precio_tomate <= precio_manzana)
En el ejemplo anterior la persona compraría los tomates, esto porque aunque la primera expresión (precio_tomate <= precio_pera)
es falsa, la segunda (precio_tomate <= precio_manzana)
es verdadera.
____________________________________________________________________
Puedes crear un script y asociarlo a un GameObject para probar este código. Este script se vería así:
using UnityEngine;
public
class
CompraFrutas : MonoBehaviour
{
int
precio_tomate = 500;
int
precio_manzana = 1000;
int
precio_pera = 450;
int
cantidad_tomates_disponibles = 15;
void Start()
{
Debug.Log((precio_tomate <= precio_pera) || (precio_tomate <= precio_manzana));
}
}
¡Felicidades! Has completado el codelab sobre Operadores Lógicos y Relacionales. Ahora puedes utilizarlos en tus scripts de Unity para agregar lógica a tu aplicación XR. Esperamos que esta guía te haya sido útil. Te invitamos a seguir explorando y experimentando con Unity.