Pickups — Sample Scenes¶
This folder contains runnable demo scenes for the Pickups system.
Each scene demonstrates a specific part of the pickup pipeline and is paired with a Teachable Panel that explains the behaviour live.
What These Scenes Are For¶
These scenes are designed to:
- Show how the Pickups system behaves in isolation
- Demonstrate pickup effects and composition without external dependencies
- Provide a safe environment for testing effects, decorators, and cooldowns
- Teach the system through live panels + minimal scene setups
👉 These scenes focus on core Pickups behaviour only.
Scene → Teachable Mapping¶
Every scene is built around a corresponding Teachable Panel:
| Scene | Focus | Teachable Panel |
|---|---|---|
| 00 — Quickstart (Minimal) | Standalone pickup flow (no Inventory) | PickupsQuickstartPanel |
| 01 — Decorators + Cooldowns | Effect wrapping + cooldown behaviour | PickupsDecoratorsAndApplyPathPanel |
👉 Open the panel in each scene to see exactly how the system is working.
World Pickups & Integrations¶
TriggerPickup itself is already in 00 — the teleport cube is one, and walking into it is the whole flow: overlap → relay → TriggerPickup → effect. The sword beside it is an InteractablePickupBase in Press mode, so you walk up to it and press F.
The rest of the input-driven surface is demonstrated in the Integrations folder:
Integrations/Pickups/InventoryIntegration/Scenes/02_World_Pickups_+_Interactables
That scene ships three catalog prefabs, one per interaction mode, all using F as the interact key:
| Prefab | Mode | What to do |
|---|---|---|
GoldHelmet | Auto | Walk into it. It picks up on trigger enter. |
GoldSword | PressToPickup | Stand in it and tap F. |
ShortSword | HoldToPickup | Stand in it and hold F for ~0.4s. |
Spawn one from the panel's Spawn tab, then walk the Player into it. None of the three has a prompt UI assigned, so nothing appears on screen to tell you to press the key — that field is InteractablePickupBase.promptUI, and wiring one up is the exercise.
Facing checks (facingDotThreshold) and respawn (respawn / respawnDelay) are fields on the same component. No shipped scene enables either — the prefabs leave facing off (-1) and respawn off. To see them, set them on a prefab and spawn it again.
👉 These are separated to keep core Pickups scenes fully standalone and removable.
What These Scenes Demonstrate¶
Effect System¶
PickupEffectas the core behaviour unit- Decorators wrapping effects (VFX, audio, conditions, etc.)
- Application via
PickupEffectRunner
Cooldowns¶
- Per-effect cooldowns
- Owner-based cooldown tracking
- Runtime gating of repeated application
Authority (Optional)¶
- Pickups can be gated by
IPickupAuthority - If no authority is present → local allow (single-player default)
- Some scenes include authority hints via panels
Inventory Independence¶
- These scenes do not require Inventory
- Use
SimpleItemBagfor lightweight demo storage - No services, adapters, or backend systems required
Important Notes¶
These are core demo scenes¶
- They are not production setups
- They do not define required prefab structures
- They do not enforce a specific architecture
Panels are developer tools¶
- Teachable Panels are for learning and debugging
- They are not gameplay UI
- They expose behaviour — they do not replace runtime systems
Assets are examples¶
- Models, materials, and props are included for demonstration only
- They are not part of the framework API
How to Use These Scenes¶
- Open a scene
- Press Play
- Open the corresponding Teachable Panel
- Apply effects and observe behaviour
- Modify inputs and test edge cases
👉 Each scene is intentionally minimal — focus on behaviour, not presentation.
Safe to Modify or Remove¶
All scenes and assets in this folder are optional.
You can:
- Modify them
- Replace them
- Delete them
without affecting the Pickups runtime system.
Summary¶
These scenes exist to answer:
“How does the Pickups system behave in isolation?”
They provide:
- Clear, focused examples
- Live, inspectable behaviour
- Zero hidden setup
For full world interaction and cross-system usage, see the Integrations scenes.