Arquitectura SOLID: responsabilidad única en Unity

Aplica SRP para dividir scripts gigantes en componentes claros, mantenibles y fáciles de testear dentro de tu juego.

El principio de Responsabilidad Única (SRP) dice que cada clase debe tener un único motivo para cambiar.

En Unity, un error común es crear un `PlayerController` que gestiona input, movimiento, audio, UI y guardado a la vez.

Separar responsabilidades reduce bugs en cascada y acelera la iteración cuando cambias una mecánica concreta.

Este enfoque conecta directamente con `contenido.md`, que propone separar `PlayerInput`, `PlayerMovement` y `PlayerAudio`.

  • Si una clase toca demasiados sistemas, ya tienes una señal de deuda técnica.
  • Un script dios acumula responsabilidades: lee input, mueve personaje, dispara audio, actualiza UI y controla checkpoints.
  • Cuando cambias una parte, rompes otra. Ese acoplamiento hace que corregir errores sea cada vez más caro.
  • El objetivo del refactor con SRP es aislar decisiones para que cada módulo sea simple de entender y mantener.
  • Una clase = una responsabilidad principal.

Detectar el script dios

Si una clase toca demasiados sistemas, ya tienes una señal de deuda técnica.

Un script dios acumula responsabilidades: lee input, mueve personaje, dispara audio, actualiza UI y controla checkpoints.

Cuando cambias una parte, rompes otra. Ese acoplamiento hace que corregir errores sea cada vez más caro.

El objetivo del refactor con SRP es aislar decisiones para que cada módulo sea simple de entender y mantener.

  • Una clase = una responsabilidad principal.
  • Menos acoplamiento entre sistemas.
  • Mayor velocidad para depurar y evolucionar.

Separar Input, Movimiento y Audio

Divide por comportamiento funcional, no por conveniencia temporal.

`PlayerInput` interpreta controles y publica intención (moverse, saltar, atacar).

`PlayerMovement` transforma esa intención en velocidad, colisiones y desplazamiento físico.

`PlayerAudio` escucha eventos y reproduce sonidos sin mezclar lógica de física o estado del jugador.

Refactor seguro en proyectos vivos

Refactoriza en pasos cortos y verificables para no romper gameplay.

Empieza extrayendo una sola responsabilidad (por ejemplo audio) y valida que todo siga funcionando en escena real.

Usa commits pequeños por cada extracción de clase para poder revertir rápido si aparece regresión.

Define contratos simples entre componentes (propiedades públicas o eventos) para minimizar dependencias ocultas.

Unity
15

Arquitectura SOLID: responsabilidad única en Unity

Aplica SRP para dividir scripts gigantes en componentes claros, mantenibles y fáciles de testear dentro de tu juego.

Código del tema: GameObject + Component = comportamiento

📘 Teoría

Detectar el script dios

Si una clase toca demasiados sistemas, ya tienes una señal de deuda técnica.

Un script dios acumula responsabilidades: lee input, mueve personaje, dispara audio, actualiza UI y controla checkpoints.

Cuando cambias una parte, rompes otra. Ese acoplamiento hace que corregir errores sea cada vez más caro.

El objetivo del refactor con SRP es aislar decisiones para que cada módulo sea simple de entender y mantener.

  • Una clase = una responsabilidad principal.
  • Menos acoplamiento entre sistemas.
  • Mayor velocidad para depurar y evolucionar.

Separar Input, Movimiento y Audio

Divide por comportamiento funcional, no por conveniencia temporal.

1

`PlayerInput` interpreta controles y publica intención (moverse, saltar, atacar).

2

`PlayerMovement` transforma esa intención en velocidad, colisiones y desplazamiento físico.

3

`PlayerAudio` escucha eventos y reproduce sonidos sin mezclar lógica de física o estado del jugador.

Refactor seguro en proyectos vivos

Refactoriza en pasos cortos y verificables para no romper gameplay.

1

Empieza extrayendo una sola responsabilidad (por ejemplo audio) y valida que todo siga funcionando en escena real.

2

Usa commits pequeños por cada extracción de clase para poder revertir rápido si aparece regresión.

3

Define contratos simples entre componentes (propiedades públicas o eventos) para minimizar dependencias ocultas.

🧪 Aprende probando

Ejemplo Ejemplo guiado Toma un controlador monolítico y separa primero la parte de audio en una clase dedicada.

🏁 Retos

Reto Reto práctico Propón una separación mínima en tres clases independientes para input, movimiento y audio.

¿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