Conceptos
Chapter Manager
Conoce las responsabilidades del coordinador de escena: descubrimiento, prioridad de inicio, sonido, persistencia, avisos de fallo y cambio de escena.
El coordinador de la escena
Debe existir un único ChapterManager activo. Configura el almacén, restaura estados terminales, consume la transferencia de escena, selecciona el capítulo inicial, expone el estado público, acepta fallos explícitos y coordina las cargas. No interpreta la entrada del jugador ni aplica una recuperación automática.
El componente necesita ChapterAudioPlayer; si falta, lo añade en Awake. Una segunda instancia registra un error y se desactiva para evitar dos propietarios del estado actual.
Prioridad de inicio
- Transferencia guardadaUn capítulo y un objetivo opcional escritos para el cambio de escena tienen la prioridad más alta.
- Selección de pruebaSolo dentro del Editor, se usa cuando está habilitada y no existe una transferencia válida.
- Default ChapterEs la última opción. Las selecciones de prueba no se utilizan en una compilación.
Esta prioridad permite que Load Scene and Start Chapter y Restore Checkpoint lleguen al destino correcto aunque la escena de destino conserve una selección local para pruebas.
Mapa de configuración
| Área | Finalidad | Regla |
|---|---|---|
| Testing Chapter | Capítulo y objetivo opcional para pruebas en el Editor | Los selectores aparecen al habilitarlo |
| Progression Defaults | Capítulo usado si no resuelve nada anterior | Debe pertenecer a este Manager |
| Progress Storage | Ámbito, perfil y proveedor opcional | No puede sustituirse después de iniciar el progreso |
| Audio Feedback | Clips opcionales de objetivo y capítulo | Vacíos utilizan sonidos procedurales incluidos |
| Lifecycle Events | Ready, antes de cargar y fallo | Son notificaciones, no decisiones automáticas |
Consultar sin apropiarse de la progresión
El código externo puede leer CurrentChapter, CurrentChapterId, CurrentChapterState, HasActiveChapter, CurrentObjective, CurrentObjectiveId, CurrentObjectiveState, HasActiveObjective e IsTransitioning. Son una fotografía actual; para conocer cambios futuros hay que suscribirse a los eventos adecuados.
Los comandos importantes devuelven bool, ChapterFailureResult o ProgressOperationResult. Comprueba ese resultado en vez de suponer que una llamada o un UnityEvent han sido aceptados.