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

It provides presentation-only behaviour

This folder does not provide:

  • gameplay logic
  • pipeline control
  • authority or validation

  • UnityIntegration
  • Core
  • Effects