01 — World Pickups + Interactables¶
Goal:
Show how world pickups and interactable pickups use the same system — one trigger-based, one player-driven — and how they behave in play.
🎓 What This Scene Teaches¶
- Spawn world pickups that auto-apply effects via
EffectPickupCore. - Use interactable pickups that require player input (Press / Hold / Auto).
- Share the same effect chain across both pickup types.
- Preview and debug effects using the Pickups teaching panels.
- Observe the difference between trigger and interactable flows.
This scene focuses on in-world pickup behaviour — one automatic, one interactive — using identical effect definitions under the hood.
⚠️ Authority Note
This scene surfaces pickup authority as a persistent panel message, not transient toasts.
World pickups are either allowed or blocked by authority — there are no partial states.Toasts are intentionally avoided because pickups are trigger-driven;
repeated authority failures would otherwise spam the UI.
🧩 How to Use¶
- Play the scene.
You’ll see two pickups in front of the Player — a cube and a sword. - Cube (World Pickup):
- Walk into the cube.
- It uses an Effect Pickup Core with a Teleport Effect.
- The Player teleports instantly, with a short burst of VFX.
- Sword (Interactable Pickup):
- Move near the sword.
- Hold the pickup key (default: F) until it triggers.
- It uses a Pickup Interactable Core, which runs a Grant Item Effect.
- The Simple Item Bag UI updates instantly, showing the new item.
- Optionally, open the Pickups World & Interactables Panel or Pickups Kitchen Sink Panel to explore bindings and runtime controls.
💡 Both pickups use the same runtime call —
PickupEffect.ApplyTo()— which enforces cooldowns and authority automatically.
🔧 Scene & Components¶
| Type | Component / Path | Description |
|---|---|---|
| Panel | RevGaming.RevFramework.Runtime.Systems.Pickups.Teaching.PickupsWorldAndInteractablesPanel |
Primary runtime test panel. |
| Optional Panel | PickupsDecoratorsAndCooldownsPanel |
Inspect decorator chains or cooldown states. |
| Cube | EffectPickupCore → TeleportEffect |
World pickup triggered on enter. |
| Sword | PickupInteractableCoreBase (Hold-to-Pickup) → GrantSimpleItemEffect |
Interactable requiring player input. |
| Player | SimpleItemBag, SimpleItemBagUI, DebugKeysInputService |
Lightweight item handling + demo UI. |
✅ No Dependencies On¶
- Inventory system
- Crafting system
- Health / Damage system
📝 Notes¶
- Both pickup types invoke the same internal method:
PickupEffect.ApplyTo(IDamageable target, GameObject context); - The Effect Pickup Core triggers via physics (
TriggerRelay2D/3D → OnEnter). - The Interactable Core listens for player input (
Press,Hold, orAutomode). - The World & Interactables Panel provides runtime selection of effect and prefab, ideal for testing definitions live.
- The sword mesh was built with Asset Forge by Kenney (licensed for inclusion).
Scene Path:
Assets/RevFramework/Runtime/Systems/PickUps/Samples/Scenes/01_World_Pickups_+_Interactables/