Simple Interaction System

Drop‑in, Inspector‑driven first‑person interactions: one controller handles detection, input, UI prompts, selection highlights, pickup/placement, and look‑to‑interact.

Get it on the Unity Asset Store

Overview

Simple Interaction System is a drop‑in, Inspector‑driven framework for first‑person projects. Add a single InteractionController to your player, place the Interactable component on scene objects, pick a type, and press Play.

This asset is used by our upcoming game, more features and updates will be added as they are needed during the game's development.

Supported interaction types:

  • Door
  • Button
  • Lever
  • Wheel
  • Switch
  • Tangible (pickup/hold)
  • Place (placement)
  • Custom

Demo Game Coming Soon... The Reactor

Promo Video

Why Use It

  • One controller orchestrates detection (overlap and raycast), input, UI prompts, selection and highlighting, and simple animations.
  • Clean editor flow: focused custom inspector per type, plus a bulk‑add window.
  • Look‑to‑interact option and "auto start/stop" when NeedInteraction is disabled.
  • Placement previews and "out‑of‑range" indicators built in.
  • UnityEvents on Interactable let you hook gameplay without writing code.

What's Included

  • Core runtime: Interactable, InteractionController, InteractionType and Exclusivity
  • Editor tooling: custom inspector and Interactable window
  • URP outline material for selection highlights
  • Minimal demo scene and prefabs for every interaction type
  • DOCUMENTATION.pdf (setup, tips, and notes)

How It Works (Runtime Highlights)

  • Periodic sphere overlap collects nearby colliders; per‑frame selection with optional camera‑based look targeting.
  • Doors, buttons, and switches animate via coroutines. Levers and wheels expose angle and percentage, with clamp or free‑spin modes.
  • Holding: mouse wheel adjusts distance; right mouse plus move rotates held items; drop key restores physics.
  • Exclusivity: world‑lock or type‑lock prevents conflicting interactions.

Limitations

  • Single‑player only (no networking).
  • Uses Unity's classic Input by default (New Input System not integrated).
  • URP outline material included; Built‑in/HDRP users should supply a compatible outline or disable highlight.
  • Demo controller uses a Unity 6 API; see Compatibility below.

Render Pipeline Compatibility

The Built-in Render Pipeline is Unity's default render pipeline. The Universal Render Pipeline (URP) is a Scriptable Render Pipeline that is quick and easy to customize. The High Definition Render Pipeline (HDRP) is a Scriptable Render Pipeline for high-fidelity graphics on high-end platforms.

Unity Version Built-in URP HDRP
6000.0.42f1 (Unity 6) Not compatible Compatible Not compatible
Additional Compatibility Information
  • Minimum editor for demo: Unity 6000.x (Unity 6) because the demo uses Rigidbody.linearVelocity.
  • Using 2022.3 LTS: Import the Core, Core/Editor, and Prefabs folders; exclude the Demo folder or wrap the demo controller for pre‑6. Core scripts are compatible.
  • Render pipelines: URP outline included. Built‑in and HDRP should use a compatible outline material or leave outline disabled.

Documentation & Setup Guide

Complete user guide with setup instructions, interaction type details, troubleshooting, and performance tips.

Download User Guide (PDF)
Quick Setup:
  1. Add the InteractionController component to your player root.
  2. Ensure your player has a child Camera (the first child Camera is used).
  3. Create a Canvas with a Panel and a TMP Text template. Assign the Panel to InteractionPanel and the TMP Text to TextPrefab on the controller.
  4. (Optional) Assign an Outline Material for selection highlighting.
  5. Add the Interactable component to any GameObject you want to interact with, choose an Interaction Type, and press Play.

Support

Email intrafirestudios@gmail.com (typical response 24–48 hours). Includes integration assistance, bug fixes, and feature clarification.

If you need any features not covered, contact the support email with your request.