# 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
StatusReleased
PlatformsHTML5
AuthorModular Labs
Made withUnity
AI DisclosureAI Assisted, Code

Leave a comment

Log in with itch.io to leave a comment.