Skip to content

🎁 Pickups — Feedback

Folder: Runtime/Systems/Pickups/Feedback

This folder contains the optional UX layer for pickups.

It provides MonoBehaviour components that respond to pickup success or failure by playing visual or audio feedback.


🎯 Purpose

The Feedback layer provides presentation-only responses to pickup events.

It is responsible for:

  • visual and audio feedback on success or failure
  • keeping presentation separate from gameplay logic
  • enabling feedback without modifying core systems

This folder does not:

  • affect pickup success or failure
  • modify effect execution
  • participate in the pickup pipeline

📦 Folder Overview

This folder provides:

  • interface-driven feedback hooks
  • simple MonoBehaviour components for VFX and SFX
  • optional, plug-in presentation behaviour

🧩 What Lives Here

  • IPickupFeedback → success feedback contract
  • IPickupFailFeedback → failure feedback contract
  • built-in MonoBehaviour implementations for SFX and VFX

🧠 Usage Guidance

Success Feedback

void PlayFeedback(Transform at);

Invoked when a pickup succeeds.


Failure Feedback

void PlayFail(Transform at);

Invoked when a pickup attempt fails.


Invocation Pattern

if (component is IPickupFeedback fx)
    fx.PlayFeedback(transform);

Notes:

  • only enabled components are invoked
  • execution is best-effort and should not throw exceptions

🧪 Diagnostics

  • multiple feedback components may run together
  • execution order is not guaranteed
  • components should be fast and non-blocking

⚠️ Important Notes

  • feedback does not affect gameplay logic
  • feedback does not block or cancel execution
  • behaviour depends on available components and configuration

🚫 Not for Production Use

This folder does not provide:

  • gameplay logic
  • pipeline control
  • authority or validation

It provides presentation-only behaviour.


  • UnityIntegration
  • Core
  • Effects