Lógica condicional en gameplay: if, else y operadores

Implementa decisiones de juego con condicionales claras para controlar estados, reglas y feedback sin código espagueti.

Las condicionales controlan decisiones del juego: daño, victoria, derrota, activación de poderes o desbloqueo de puertas.

Una condición bien nombrada hace más mantenible el código que una cadena larga de ifs sin intención clara.

Operadores lógicos (`&&`, `||`, `!`) permiten combinar reglas de gameplay de forma expresiva.

Cuando los estados crecen, conviene evolucionar de condicionales sueltas a una máquina de estados simple.

  • Cada condicional debe responder una pregunta de gameplay concreta.
  • No escribas condiciones por escribir: define primero qué regla de juego estás evaluando (por ejemplo, ¿el jugador tiene vida suficiente para interactuar?).
  • Evita anidación excesiva. Si hay demasiadas ramas, extrae métodos con nombres claros como `PuedeSaltar()` o `TieneMunicion()`.
  • Un bloque condicional limpio facilita balanceo y pruebas, porque puedes cambiar reglas sin romper otras partes del sistema.
  • Condición = regla de diseño.

If/else con intención de diseño

Cada condicional debe responder una pregunta de gameplay concreta.

No escribas condiciones por escribir: define primero qué regla de juego estás evaluando (por ejemplo, ¿el jugador tiene vida suficiente para interactuar?).

Evita anidación excesiva. Si hay demasiadas ramas, extrae métodos con nombres claros como `PuedeSaltar()` o `TieneMunicion()`.

Un bloque condicional limpio facilita balanceo y pruebas, porque puedes cambiar reglas sin romper otras partes del sistema.

  • Condición = regla de diseño.
  • Ramas cortas y con nombres semánticos.
  • Menos anidación, más legibilidad.

Operadores lógicos para reglas combinadas

Combinar condiciones te permite expresar gameplay real sin duplicar código.

Con `&&` exiges que se cumplan dos reglas a la vez (por ejemplo: tiene llave y energía suficiente).

Con `||` aceptas alternativas (por ejemplo: entrar si tiene pase VIP o nivel superior a 10).

Con `!` inviertes una condición (por ejemplo: no está en cooldown), útil para bloquear acciones temporalmente.

Cuándo pasar de if a switch

Switch mejora lectura cuando comparas un mismo valor contra muchos casos.

Si evalúas el estado de un personaje (`Idle`, `Run`, `Attack`, `Stunned`) con muchos `if/else if`, un `switch` suele ser más claro.

`switch` reduce errores al añadir nuevos estados y obliga a pensar un caso por defecto para estados no contemplados.

Para lógica de estados más compleja, el siguiente paso es un patrón de máquina de estados, pero `switch` ya ofrece orden en fases intermedias.

Unity
09

Lógica condicional en gameplay: if, else y operadores

Implementa decisiones de juego con condicionales claras para controlar estados, reglas y feedback sin código espagueti.

Código del tema: GameObject + Component = comportamiento

📘 Teoría

If/else con intención de diseño

Cada condicional debe responder una pregunta de gameplay concreta.

No escribas condiciones por escribir: define primero qué regla de juego estás evaluando (por ejemplo, ¿el jugador tiene vida suficiente para interactuar?).

Evita anidación excesiva. Si hay demasiadas ramas, extrae métodos con nombres claros como `PuedeSaltar()` o `TieneMunicion()`.

Un bloque condicional limpio facilita balanceo y pruebas, porque puedes cambiar reglas sin romper otras partes del sistema.

  • Condición = regla de diseño.
  • Ramas cortas y con nombres semánticos.
  • Menos anidación, más legibilidad.

Operadores lógicos para reglas combinadas

Combinar condiciones te permite expresar gameplay real sin duplicar código.

1

Con `&&` exiges que se cumplan dos reglas a la vez (por ejemplo: tiene llave y energía suficiente).

2

Con `||` aceptas alternativas (por ejemplo: entrar si tiene pase VIP o nivel superior a 10).

3

Con `!` inviertes una condición (por ejemplo: no está en cooldown), útil para bloquear acciones temporalmente.

Cuándo pasar de if a switch

Switch mejora lectura cuando comparas un mismo valor contra muchos casos.

1

Si evalúas el estado de un personaje (`Idle`, `Run`, `Attack`, `Stunned`) con muchos `if/else if`, un `switch` suele ser más claro.

2

`switch` reduce errores al añadir nuevos estados y obliga a pensar un caso por defecto para estados no contemplados.

3

Para lógica de estados más compleja, el siguiente paso es un patrón de máquina de estados, pero `switch` ya ofrece orden en fases intermedias.

🧪 Aprende probando

Ejemplo Ejemplo guiado Reescribe las condiciones para añadir una regla de cooldown sin romper la lógica actual.

🏁 Retos

Reto Reto práctico Crea una condición para activar sprint solo si hay energía suficiente y el jugador no está aturdido.

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros. culTest

La hice en febrero de 2026 para facilitar el aprendizaje de mis alumnos. La idea es aprender desarrollo web practicando y que el proyecto siga creciendo con nuevos temas, tests y retos.

Está inspirada en MDN, W3Schools, CodePen, Manz y muchos otros sitios de documentación sobre desarrollo web. Quería combinar teoría útil, ejemplos ejecutables, retos y el sistema de tests que ya tenía en culTest. culTest

Si te gustó, si no te gustó o si quieres escribirme, puedes hacerlo en cristianeslava@gmail.com