Intro: One Interaction System, Infinite Possibilities In most controllers, interactable objects (doors, cover, ladders) are hardcoded directly into the player controller. That makes it nearly impossible to extend or reuse those mechanics outside the player. The Modular Third-Person Framework solves this with a scene-object–based Interaction System. By attaching scripts like Door, Elevator, ClimbObject, CoverObject, ParkourObject, LedgeObject, and WaterVolume directly to scene objects, you unlock an interaction layer that works seamlessly for the player, NPCs, and even non-humanoids.
The Challenge: Hardcoded Interactions Traditional interaction systems create problems:
- Player-locked logic → only the player can use climb/cover, not NPCs.
- Rigid implementations → new objects require editing the player controller.
- Code duplication → multiple classes for similar interactions.
- Maintenance headaches → any update risks breaking other systems.
The Solution – Scene-Object Driven Interactions The framework uses a base class (InteractableBaseSystem) and an interface (IInteractable) to unify all interactables. Key Features
- Shared Contract → All interactables implement IInteractable, guaranteeing Interact(), GetInteractionPoint(), and GetObjectSize().
- Base System → InteractableBaseSystem provides a clean foundation.
- Scene-Object Scripts→ simply attach the right component to your prefab:
- ClimbObject → ladders, walls, ropes, poles.
- CoverObject → high/low cover objects with size data.
- Door → open/close with handler + coroutine-based auto-close.
- Elevator → smooth up/down movement with button interaction + parenting logic.
- ParkourObject → vaults, jumps, slides, with closest-point alignment.
- LedgeObject → climb exits, ledge grabs.
- WaterVolume → detects surface/bottom for swimming and diving.
- Reusability → works not only for the player but also NPCs and AI if they reference the same interaction contracts.
- IK Integration → Hand IK aligns naturally with handlers (doors, elevators) and ledges.
Proof: Unified Interactions in Action Without the framework:
- Climb logic buried in player code.
- Doors scripted manually with unique triggers.
- NPCs can’t use cover or parkour without duplicate code.
With the framework:
- Add a Door component → player (and NPCs) can interact automatically.
- Add a ClimbObject to a wall prefab → player can climb without editing the controller.
- Attach WaterVolume to a collider → swimming and diving transitions just work.
Developer-Friendly by Design
- Interface-driven → IInteractable ensures consistency across all interaction objects.
- Extensible Base Class → InteractableBaseSystem handles shared logic.
- Modular Attachments → each interaction lives on its scene object, not in the player.
- Independent from Controller → same scripts usable by NPCs, AI, or any other actor.
- Clean Separation → gameplay logic is decoupled from animations and UI (UI handled separately via PlayerCoreUIOrchestrator).
Use Cases
- Adventure games → ladders, doors, elevators, and ledges enrich traversal.
- Stealth/shooter games → cover and parkour add tactical depth.
- Survival games → water volumes for swimming & diving.
- AI worlds → same interactable scripts extend immersion when NPCs use them.
Closing: One System, Many Interactions With the Modular Third-Person Framework, you don’t need to hardcode every interactable into your controller. Instead, you attach modular scripts to scene objects, and the framework takes care of the rest — scalable, reusable, and clean.
👉 Get the Modular Third-Person Framework on the Unity Asset Store: Modular Third-Person Framework | Game Toolkits | Unity Asset Store