Contents
접기
728x90
과제 개요
이번 개인 과제에서는 Unity C# 기반의 간단한 RPG 게임 시스템을 구현했다.
UI를 출력하고, Player의 상태를 보여주며, 인벤토리와 상점 기능의 틀을 구성하는 것이 목표였다.
개발하며 배운 점
- 객체 간 의존성 설계의 중요성
Player와 InventoryManager, ShopManager처럼 서로 데이터를 공유하는 구조에서는 객체 생성 순서와 참조 방식이 매우 중요하다는 걸 배웠다.
→ 특히 순환 참조(Circular Dependency)를 피하는 법을 직접 경험하며 설계에 대해 더 깊이 고민할 수 있었다. - UI 분리의 이점
UI 관련 기능을 UIManager로 분리하니, 전체 로직이 깔끔하게 정리되고 나중에 유지보수가 쉬워졌다. - 입력값 처리의 안정성
int.TryParse()를 통해 숫자 입력을 안정적으로 처리하는 방법을 익혔고, 예외 상황을 사용자에게 명확히 안내하는 방식도 고민해보았다.
고민했던 점
- 객체 간 참조 순서가 꼬여 NullReferenceException이 자주 발생했는데, 구조를 개선하거나 생성자와 setter의 적절한 활용으로 해결했다.
- Player와 Inventory의 관계처럼 한쪽이 아직 생성되지 않았는데 참조하려는 구조가 얼마나 쉽게 문제를 일으킬 수 있는지도 체감했다.
다음 목표
- 이번에 만든 구조를 기반으로 실제로 전투나 아이템 구매 기능까지 확장해보고 싶다.
- 이후에는 인터페이스 활용도 도전해보려고 한다.
📖 마무리하며
이번 개인 과제는 단순한 콘솔 게임 시스템이었지만, 구조 설계와 순서, 참조 관계에 대한 실질적인 훈련이 되었다.
실제 프로젝트에서 발생할 수 있는 다양한 문제를 미리 경험하고 해결한 값진 시간이었다.
다음 팀 프로젝트때 이번에 고민했던 내용을 잘 적용시켜보고싶다.
728x90
'C# > C#프로젝트' 카테고리의 다른 글
[TeamProject2] C# 팀프로젝트 회고 - Dark Zeb(1등!) (0) | 2025.04.29 |
---|---|
[TeamProject2] 기능 나열형 코드를 MVC 패턴으로 구조화 (0) | 2025.04.28 |
[C#TeamProject][트러블슈팅] Monster 객체 재사용 문제와 객체 복제의 필요성 (0) | 2025.04.27 |
[C#Project] Player가 Inventory를 참조할 때 발생한 순환 참조 문제 (Circular Dependency) (0) | 2025.04.19 |
[C#Project] TextRPG게임설계 (0) | 2025.04.18 |