
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
Modular Labs View creator →