Interaction System
# Modular Interaction System for Unity
A lightweight, reusable interaction framework built for Unity's Input System.
Drop it into any project — FPS, TPS, top-down, VR, or fully custom — and get
pickup, use, and examine mechanics working in minutes, with zero hard
dependencies on your player controller.
## Features
### Core Interaction
- Raycast-based detection of interactable objects, driven entirely by layers
and range — no assumptions about your scene setup
- Modern Input System integration via InputActionReference
- Interface-based architecture (`IInteractable`) for easy custom extension
- UnityEvent hooks everywhere, so you can wire gameplay logic without
touching code
### Built-in Interactable Types
- **PickupableItem** — pick up, carry, and throw objects with physics
- **UsableItem** — limited-use interactables (switches, consumables,
buttons) with an optional **timed respawn**, so items can reappear after
a delay instead of being destroyed for good — no extra scripts required
- **ExaminableItem** — pull objects in for a close look, rotate them with
the mouse, and zoom with the scroll wheel
### Player Feedback
- Clear, item-specific "Press E to..." prompts that update automatically
based on what you're looking at or holding
- A center-screen radial reticle that fills in as you approach an
interactable from a distance, before it's close enough to use
- An on-screen controls hint during examine mode, showing exactly how to
rotate, zoom, and exit — no guesswork for players
### Built for Any Project
- Controller-agnostic: works with Unity's Starter Assets, Cinemachine,
Invector, Opsive, or your own custom controller
- No coupling between interactable types — use only what you need
- Fully commented C# source, ready to extend
## What's Included
- Core scripts: detection, input handling, pickup/use/examine logic
- Optional UI system: prompt panel, radial awareness indicator, and
examine controls hint, all wired through a single connector component
- Example Input Actions asset with default bindings (E to interact)
- A demo scene showing every interactable type in action
## Requirements
- Unity 2022.3 LTS or newer
- Unity Input System package
- TextMeshPro
## Quick Start
1. Add an `InteractionManager` to your player and assign your camera
2. Set your interactable objects to the "Interactable" layer
3. Add `PickupableItem`, `UsableItem`, or `ExaminableItem` to any object
4. Press Play and press E — that's it
Built with modularity in mind: integrate once, use everywhere.
Check out more of modular systems and prototypes at modular-labs.itch.io, or reach out for custom Unity prototyping and gameplay systems work modular-labs.itch.io
| Published | 7 days ago |
| Status | Released |
| Platforms | HTML5 |
| Author | Modular Labs |
| Made with | Unity |
| AI Disclosure | AI Assisted, Code |

Leave a comment
Log in with itch.io to leave a comment.