Interactive Furniture System
Key Pickup & Drop ... Add interactive environmental objects with animated behavior. Fans support: Animated spinning Acceleration & deceleration Physical switches ... Demo Scene
by SuperHorizonstudios
Price History +
Engine & Compatibility
- Unity 2021.3 LTS and above
- Universal Render Pipeline (URP) and Built-in Render Pipeline compatible
- No third-party dependencies; only requires Unity.TextMeshPro (included with Unity)
- Assembly Definition (.asmdef) included for clean compile isolation
Architecture
The system is built around two lightweight interfaces:
- IInteractable — implemented by all interactive objects (GetPrompt(), OnInteract()). Any custom object implementing this interface is automatically picked up by the Interactor.
- IPickupable — implemented by collectible items such as KeyItem.
Interaction Flow
- FurnitureInteractor fires a Physics.Raycast each frame from the player camera.
- Hit collider is queried for IInteractable via GetComponentInParent.
- InteractionPromptUI displays the result of GetPrompt().
- On KeyCode.E press, OnInteract(this) is called on the target.
- Lock check → key consumption → animation coroutine → state update.
Lock & Key System
- Each lock holds a requiredKeyID string.
- Each KeyItem holds a matching keyID string.
- FurnitureInteractor holds at most one key at a time; keys are consumed on use and can be dropped (KeyCode.G) back into the world with physics restored.
SuperHorizon Interactive Furniture System is a modular interaction framework for Unity designed for first-person games. Add interactive doors, drawers, cabinets, trunks, keys, fans, and other environmental objects with a simple camera-based interaction system.
✦ Interactive Furniture
Ready-to-use controllers for common environmental interactions:
- Single & Double Doors
- Drawers & Drawer Sets
- Cabinets
- Trunks
- Keys & Locks
- Fans & Switches
Each controller provides configurable animation, interaction, and optional audio behavior.
✦ Simple First-Person Interaction
The included FurnitureInteractor uses a camera raycast to detect interactive objects and display an interaction prompt.
Configure:
- Interaction Range
- Interaction Key
- Interactable Layer
- Player Camera
The system is independent of your movement controller, making it easy to integrate with an existing player system.
✦ Keys & Locks
Create locked furniture that requires specific keys.
- Unique Key IDs
- Locked Doors, Drawers, Cabinets & Trunks
- Key Pickup & Drop
- Required Key IDs
- Unlock Interactions
- Pickup Prompts
✦ Fans & Switches
Add interactive environmental objects with animated behavior.
Fans support:
- Animated spinning
- Acceleration & deceleration
- Physical switches
- Looping audio
✦ Audio Support
Add interaction sounds to furniture and environmental objects using Unity AudioSources and AudioClips.
✦ Developer-Friendly Architecture
The system uses interfaces such as IInteractable and IPickupable, making it possible to extend the framework with your own interactive objects and custom pickup systems.
✦ Included
- Furniture Interaction System
- Interaction Prompt UI
- Door Controller
- Double Door Controller
- Drawer Controller
- Drawer Set Controller
- Cabinet Controller
- Trunk Controller
- Key & Lock System
- Fan Controller
- Fan Switch
- Ready-to-use Prefabs
- Demo Scene
- Example Player Controller
- Audio Support
- API & Extension Support
- Documentation
Built for First-Person & Environmental Interaction
Create interactive environments for horror, survival, RPG, adventure, exploration, immersive simulation, and first-person games.
Interact. Open. Unlock. Explore.