A focused portfolio project demonstrating practical Unity debugging and bug-fix workflows in C#.
This repository contains small, reproducible bug cases designed to show how common Unity issues can be:
- reproduced in minimal scenes
- diagnosed clearly
- fixed cleanly
- documented with before/after evidence
The case studies are intentionally minimal so each issue can be isolated, reproduced, and explained clearly. They are scoped around the kinds of targeted problems that often appear in freelance Unity support work.
- See the Bug Case Index below for the four completed cases
- Open each case folder for:
- problem description
- reproduction steps
- fix notes
- video evidence
- Open the Unity scenes to reproduce each issue directly
| Case | Category | Issue |
|---|---|---|
| Bug 01 | Movement/Input | Diagonal movement speed inconsistency |
| Bug 02 | Gameplay State | Pause menu does not fully stop player input |
| Bug 03 | Missing Reference | Unassigned player reference causes runtime failure |
| Bug 04 | Save/Load | Collected item state is not restored correctly |
- 4 completed Unity bug case studies
- movement/input, gameplay state, missing reference, and save/load coverage
- minimal repro scenes for each issue
- before/after evidence and documented fixes
This repository includes the Unity project source required to inspect and run the bug repro scenes.
Included Unity project folders:
AssetsPackagesProjectSettings
Generated/cache folders such as Library and UserSettings are intentionally excluded because Unity recreates them locally.
This repository is not intended to be a full game project. It is a focused debugging portfolio built around small, reproducible Unity issues and targeted fixes.
- movement and input bugs
- gameplay/UI state conflicts
- missing reference and dependency issues
- save/load and state restoration bugs
These examples reflect the kinds of targeted debugging problems that frequently appear in prototype, indie, and freelance Unity work.
Movement becomes faster when combining input axes without normalization.
This case demonstrates:
- vector magnitude issues
- debugging movement systems
- Input System normalization options
Opening the pause menu does not fully stop player movement because gameplay scripts continue to process input.
This case demonstrates:
- UI/gameplay state management
- pause logic design
- input gating strategies
A minimal runtime error case where an enemy script assumes a Player reference exists and throws an UnassignedReferenceException when the dependency is missing.
This case demonstrates:
- dependency validation
- safer initialization
- defensive null handling
- runtime debugging in Unity
A persistence bug where a collected item reappears after save/load because its state is not correctly stored or restored.
This case demonstrates:
- save/load debugging
- JSON file persistence
- state restoration logic
- Unity
- C#
- Git
Many Unity freelance requests are targeted debugging and maintenance tasks rather than full game builds. This repository is designed to demonstrate practical value for that kind of work.
Completed
This project is licensed under the MIT License. See the LICENSE file for details.