Ejecución
Reinicio y retroceso
Distingue entre reiniciar el estado temporal de un componente, borrar el progreso guardado y retroceder una posición dentro de un capítulo activo.
Operaciones con alcances distintos
| Operación | Cambia | No cambia |
|---|---|---|
| Objective.ResetObjective | Estado local del detector | No toca la fila ni el progreso guardado |
| Inicio limpio de Chapter | Progreso conocido de ese Chapter, filas y componentes enlazados | No borra otros Chapters ni estados booleanos |
| ChapterManager.ClearProgress | Registros conocidos del ámbito/perfil | No borra otros PlayerPrefs ni claves huérfanas |
| Chapter.TryStepBack | Completa la fila actual y vuelve una posición | No es un historial libre ni deshace el mundo |
Contrato exacto de TryStepBack
El Chapter debe estar Active, el índice debe ser al menos 1 y el ID debe coincidir con la fila actual. Se detiene la espera, se emite ObjectiveCompleted, se completa la fila actual con semántica de retroceso, se resta uno, se reinicia la fila anterior y su componente enlazado y se vuelve a iniciar.
Las acciones finales sí se ejecutan, pero se suprime el sonido de objetivo. Como es una operación de progresión, puede guardar la fila actual antes de volver atrás.
Reset de componentes personalizados
- Llama a
base.ResetObjective(). - Detén corrutinas y temporizadores que puedan emitir señales tardías.
- Limpia contadores, ramas, colliders y banderas.
- Restaura por separado objetos destruidos, movidos o reciclados.
- No reproduzcas eventos históricos durante Reset.
DestructionObjective no recrea; ObjectPlacementObjective limpia ocupación, pero no mueve; ObjectTransportAction no conserva una transformación inversa.
Probar reinicio y retroceso por separado
- 1Completa la fila 01 y deja activa la 02.
- 2Llama TryStepBack con el ID de 02: debe devolver true y activar 01.
- 3Inténtalo desde 01: debe devolver false.
- 4Reinicia solo el detector y confirma que la lista no se mueve.
- 5Inicia el Chapter y confirma que otro Chapter conserva su progreso.
- 6Ejecuta ClearProgress y comprueba todos los registros conocidos.