ARCHMAGE PROJECT

Unity C# | UI Engineering | System Architecture

GAMEPLAY SYSTEMS DEMO

INTERFACE-DRIVEN INTERACTION

To decouple the player controller from world objects, I implemented an Interface-based Interaction System (`I_Interactable`).

The `Interactor` class utilizes Physics.OverlapSphereNonAlloc for garbage-collection-friendly detection. By checking for the interface rather than specific classes, the system is modular—allowing Chests, Doors, and NPCs to share unified input logic without hard dependencies.

UI & EVENT SYSTEMS

I engineered a responsive Drag-and-Drop Inventory system by implementing Unity's Event Interfaces (`IBeginDragHandler`, `IDragHandler`, `IDropHandler`).

The system features complex slot logic where items intelligently snap to valid targets. I implemented an `EquippedSlot` class that not only accepts items but dynamically alters player stats—for example, equipping "Boots" immediately modifies the `PlayerMovement` speed.

CORE ARCHITECTURE

The game's lifecycle is managed by a robust Singleton GameManager. This central system handles scene transitions, audio persistence, and global game states (Pause, Win, Lose).

I implemented a Coroutine-based "Message Log" system that queues in-game events (e.g., "Health Potion Used") and fades them out over time, ensuring the player receives feedback without cluttering the UI.