En Unity suele ser muy útil preferir composición antes que cadenas de herencia enormes.
Enemy
└── FlyingEnemy
└── ShootingFlyingEnemy
└── BossShootingFlyingEnemy
Puede volverse rígido.
Enemy
├── Health
├── Movement
├── Shooter
└── Flying
Cada componente aporta una capacidad.
Podés reutilizar comportamientos.
Ejemplo:
Flying
puede servir tanto para enemigo como para otro objeto.
GameObject + Components ya sigue este modelo.
Preferir:
componentes pequeños
+
composición
antes que herencias profundas.