Skip to content

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

  1. Play the scene.
    You’ll see two pickups in front of the Player — a cube and a sword.
  2. Cube (World Pickup):
  3. Walk into the cube.
  4. It uses an Effect Pickup Core with a Teleport Effect.
  5. The Player teleports instantly, with a short burst of VFX.
  6. Sword (Interactable Pickup):
  7. Move near the sword.
  8. Hold the pickup key (default: F) until it triggers.
  9. It uses a Pickup Interactable Core, which runs a Grant Item Effect.
  10. The Simple Item Bag UI updates instantly, showing the new item.
  11. 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 EffectPickupCoreTeleportEffect 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, or Auto mode).
  • 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/