Hostile Consumer Panels¶
This folder contains hostile-consumer teachable panels for the Pickups system.
These panels are intentionally written as if they lived in a completely separate Unity project consuming RevFramework from the outside.
They verify that the Pickups public API surface is complete, stable, and usable without internal access.
What "Hostile Consumer" Means¶
Panels in this folder are restricted to using only:
- Public APIs
- Documented runtime components
- Supported extension seams
- Teaching UI utilities
They may not:
- reference
.Internalnamespaces - use reflection to access private state
- call undocumented
.Corehelpers - depend on sample/demo utilities
- rewire the composition of scene objects they do not own
If a panel requires any of those behaviours, the panel must not live in this folder.
Panels in This Folder¶
| Panel | Teaches |
|---|---|
PickupsQuickstartPanel | The smallest honest flow: bind an actor and a PickupEffect, preflight what the runner will receive, then apply through the real PickupEffectRunner. |
PickupsDecoratorsAndApplyPathPanel | The live decorator chain from outer wrapper to core effect, then application through the same supported runtime path. |
PickupsWorldAndInteractablesPanel | World pickups end to end: spawning, trigger entry, layer and tag gating, facing, and respawn. |
Why the World Panel Still Counts¶
PickupsWorldAndInteractablesPanel calls AddComponent, which normally disqualifies a panel from this folder. It stays here, and the distinction is worth stating because it is the line the whole folder rests on.
The panel adds components to an object it instantiated itself — a prefab instance it spawned to demonstrate world pickups — and every type it adds is a shipped public runtime type: TriggerPickup, TriggerRelay3D, and a plain SphereCollider as a fallback when the prefab has no collider.
That is what a consumer writes when spawning a pickup at runtime. It is not the same as reaching into an object the scene already owned and rebuilding it, which is what the panels in a Demos/ folder are permitted to do and these are not.
The rule is whose object is being changed, not whether AddComponent appears.
Reading These Panels¶
Copy the service calls and the result handling. Ignore the IMGUI layout — it is scaffolding, not a UI recommendation.
Each panel shows the result the runtime actually returned rather than a hand-computed prediction. Where a panel displays its own explanatory breakdown, the runner's result is the one to trust.