Practical Guides
External Completion and Scene Activation
Complete from another asset and activate or deactivate scene objects at the right Objective lifecycle edge.
Practical guide: complete from another asset
Keep the third-party callback in a project-owned bridge. When the external system confirms the real condition, resolve ChapterManager.Instance, require HasActiveObjective, compare CurrentObjectiveId with the expected stable ID, and call CurrentChapter.TryCompleteObjective(expectedId). Use the bool result to distinguish accepted progression from a stale or duplicated callback.
The bridge should compile in an integration assembly that owns the external package dependency. Core remains vendor-neutral and does not need that asset installed.
Practical guide: activate objects at the correct edge
| Desired result | Configure |
|---|---|
| Show an interactable when the row truly begins | Activate On Start |
| Hide a blocker before the start event callback | Deactivate On Start |
| Reveal the next visual cue after accepted completion | Activate On Completion |
| Remove the completed task prop | Deactivate On Completion |
| Let project code decide a complex state | Use the corresponding UnityEvent once, not duplicate array entries |
Start actions wait for Start Delay and the external-animation gate. Completion arrays run after terminal persistence and before the completion UnityEvent. Skipped rows run neither side.
Make the boundary robust
- Unsubscribe vendor callbacks when the bridge disables.
- Reject callbacks for a different active ID.
- Do not retry endlessly after false; determine whether the callback was early, late, or misconfigured.
- Make project-side visual activation idempotent.
- Reset or respawn external content explicitly on Chapter restart.
- Use a custom Objective subclass when the same detector is reused in several scenes.
Example: interaction asset unlocks a door
- 1Create an Ordered Objective named
Use the access terminal. - 2Add the locked-door marker to Activate On Start.
- 3In the external interaction success callback, call the bridge with the exact Objective ID.
- 4Add the open-door object to Activate On Completion and the locked version to Deactivate On Completion.
- 5Test an early callback, success, duplicate callback, and Chapter restart. Only success should advance once.