Problem
Real-world elevators follow strict rules: they move between discrete floors, respond to user input, and operate with predictable timing.
The goal of this project was to simulate this behavior in Unity in a way that is interactive, reliable, and easy to extend, rather than focusing on visual effects or gameplay.
Approach
I designed the elevator as a logic-driven interactive system, separating concerns such as movement, user input, and behavior control.
The focus was on building predictable, real-world-like behavior using Unity’s update loop and scripted control, instead of physics-based movement.
The system responds to floor selection input, moves smoothly between predefined floor positions, and enforces timing constraints to mirror how an actual elevator behaves.
Key Features
Discrete floor-based elevator movement with accurate stopping positions
Interactive floor selection controls
Controlled, time-based vertical movement (non-physics driven)
Clear separation between control logic and movement behavior
These choices ensured the system remained easy to debug, reason about, and expand.
Key Learnings
Designing interactive systems benefits from clearly separating logic, movement, and input handling
Time-based movement provides more predictable behavior than physics-based solutions for simulations
Even simple real-world systems require careful rule definition to feel believable and responsive
This project strengthened my understanding of building structured interactive systems in Unity rather than purely visual experiences.
Tools & Technologies
Unity
C#
Future Improvements
Queue-based handling of multiple floor requests
Door open/close logic with safety constraints
First-person interaction mode (prototype in progress on a separate branch)