🗓️ 오늘 하루 일정
✅ 오전
- 09:00 ~ 10:00 : 새로운 팀 배정 및 팀원 자기소개
- 10:00 ~ 10:30 : Unity 입문 챕터 발제 강의 수강
- 10:30 ~ 13:00 : 2D TopDown Shooting 게임 개발 시작
🍽️ 점심시간
- 13:00 ~ 14:00 : 점심시간
✅ 오후
- 14:30 ~ 16:00 : 이력서 작성 강의 (기본 정보, 자기소개, 프로젝트 항목 포함)
- 16:00 ~ 18:00 : 탑다운 슈팅 게임 디버깅 및 기능 구현
- Input System 설정 오류 수정
- Sprite 설정 문제 해결
- 투사체 생성/충돌 디버깅
- AudioSource 누락 문제 해결
🍽️ 저녁시간
- 18:00 ~ 19:00 : 저녁시간
✅ 저녁
- 19:00 ~ 21:00 : 깃허브 README 작성 및 프로젝트 업로드, TIL 작성
- TheStack, TopDown 프로젝트 업로드
- 각 프로젝트 리드미 작성
- 트러블슈팅/폴더 구조 정리
✅ 오늘 학습 키워드
- Unity 2D TopDown Shooting 개발
- Input System 이벤트 함수 매핑 (OnMove, OnLook, OnFire)
- 투사체 발사 및 충돌 처리 (ProjectileManager, ProjectileController)
- SpriteRenderer 누락 및 이미지 표시 문제 해결
- AudioSource 컴포넌트 오류 디버깅 (SoundManager)
- 애니메이션 이벤트 오류 (AnimationEvent without function)
- EnemyManager를 통한 적 생성 및 웨이브 진행 구조
- GameManager 흐름 제어 및 Init 함수 호출 구조
- GitHub 프로젝트 업로드 방식
- .gitignore 및 라이선스 설정
- README.md 작성 실습 (프로젝트 설명, 기능 요약, 트러블슈팅, 폴더 구조)
- Resume 작성 기초 강의 (기본 정보, 자기소개, 프로젝트 항목 중심)
✅ 오늘 학습 한 내용을 나만의 언어로 정리하기
Unity - Singleton Pattern (싱글톤 패턴) in Unity
🎮 Unity에서의 싱글톤(Singleton) 패턴🔍 싱글톤이란?싱글톤(Singleton)은 프로그램 전체에서 단 하나의 인스턴스만 존재하도록 보장하는 디자인 패턴이다. 게임에서는 주로 오디오 매니저, 게임 매
dev-jen.tistory.com
Unity - Unity에서의 Generic Singleton 패턴
❓ 왜 Generic Singleton이 필요할까?Unity에서는 GameManager, SoundManager, UIManager 등 다양한 매니저 클래스에서 싱글톤(Singleton) 패턴을 사용한다.하지만 매번 static instance 선언, Awake()에서 중복 제거 같은
dev-jen.tistory.com
오늘은 새로운 팀에 배정되고, 팀원들과 인사를 나눈 후 개인 프로젝트로 2D TopDown 슈팅 게임 개발을 시작했다. Unity Input System을 적용하면서 OnMove, OnLook, OnFire 같은 입력 함수가 자동으로 호출되기 위해서는 Input 액션 이름과 함수명이 정확히 일치해야 한다는 것을 다시 한번 확인했다. 단순한 오타로 인해 캐릭터가 움직이지 않았던 상황이 있었고, 해당 이슈를 해결하며 Input System의 작동 원리에 대해 더 명확히 이해하게 되었다.
또한 ProjectileManager와 ProjectileController를 통해 투사체를 생성하고, RaycastHit2D로 충돌 여부를 판별하여 적에게 데미지를 주는 로직을 구현했다. 화살이 생성되었는데도 이미지가 보이지 않아 당황했는데, 이는 프리팹에 SpriteRenderer가 누락된 것이 원인이었다. 이처럼 사소한 실수가 게임 동작에 영향을 줄 수 있다는 점을 다시금 느꼈다.
사운드 구현 과정에서는 SoundManager가 참조하는 AudioSource 컴포넌트가 오브젝트에 붙어 있지 않으면 MissingComponentException이 발생한다는 걸 직접 경험하며, Unity에서 컴포넌트 구조를 꼼꼼히 확인하는 습관의 중요성을 배웠다.
마지막으로, 오늘 만든 TheStack과 TopDown 프로젝트를 GitHub에 업로드하고, 리드미를 정리하면서 폴더 구조, 기능 설명, 트러블슈팅 내용을 문서화했다. 이렇게 기록하는 과정이 내가 만든 프로젝트를 더 명확하게 이해하게 해주었고, 앞으로 포트폴리오 작성에도 큰 도움이 될 것 같다.
🧩 학습하며 겪었던 문제점 & 에러
1. ❌ 캐릭터가 움직이지 않음
- 문제정의: 플레이어가 키 입력을 받아도 움직이지 않았다.
- 시도: PlayerController의 OnMove()가 제대로 작성되어 있는지, InputAction 설정이 되어 있는지 확인.
- 해결 방법: InputAction의 이름이 Lock으로 잘못 작성되어 있었음. Look으로 수정하자 마우스 방향 회전도 정상 작동함.
- 새롭게 알게 된 점: Input System은 액션 이름과 함수명이 정확히 일치해야 메서드가 호출된다.
- 다시 만나게 된다면: Input Action 설정 후 함수 연결 확인 시 오타 여부를 가장 먼저 점검하자.
2. ❌ 투사체는 생성되지만 이미지가 보이지 않음
- 문제정의: 활 공격 시 화살이 생성되지만 Sprite가 보이지 않았다.
- 시도: ProjectileController의 로직 점검, SpriteRenderer의 설정 확인.
- 해결 방법: projectilePrefabs로 등록한 화살 프리팹에 SpriteRenderer 컴포넌트가 누락되어 있었음. SpriteRenderer를 추가하자 정상적으로 이미지 출력됨.
- 새롭게 알게 된 점: 프리팹 구성 요소 중 하나라도 누락되면 기능은 작동해도 시각적으로 표시되지 않을 수 있다.
- 다시 만나게 된다면: 프리팹 등록 전 구성 요소 체크리스트를 확인하자.
3. ❌ 효과음 재생 시 MissingComponentException 발생
- 문제정의: 게임 실행 시 SoundManager에서 BGM을 재생하려다 MissingComponentException 발생.
- 시도: 로그를 따라 AudioSource 관련 코드 위치 확인.
- 해결 방법: SoundManager 오브젝트에 AudioSource가 빠져 있었음. Add Component로 추가하여 해결.
- 새롭게 알게 된 점: 스크립트에서 사용하는 컴포넌트는 Inspector에서 수동 추가가 필요한 경우가 많다.
- 다시 만나게 된다면: Awake 또는 Start에서 사용하는 컴포넌트가 Editor 상에 존재하는지 꼭 확인하자.
📝 메모
오늘은 개인적으로 만든 탑다운 슈팅 게임 프로젝트를 디버깅하면서 정말 많은 걸 배웠다.
처음엔 단순히 Sprite가 안 보이는 이유가 코드 때문일 줄만 알았는데, 오히려 Inspector에서의 누락이 문제였다는 걸 깨달았고,
Input System도 처음 도입하면서 Action 이름과 함수 이름이 정확히 일치해야 작동하는 등, 작은 오타 하나로 전체 흐름이 막힐 수 있다는 점을 체감했다.
디버깅을 반복하며 단순히 "왜 안 되지?"를 넘어서, **"내가 무엇을 놓치고 있는가?"**를 묻는 습관을 조금씩 갖게 되는 하루였다.
그리고 무엇보다 중요한 건 "작은 성공 경험"을 계속 축적하는 일인 것 같다. 하나하나 오류를 해결해 나가며 기능이 살아나는 그 순간의 기쁨은, 정말 다시 코드를 짜고 싶게 만든다.
내가 만든 프로젝트를 깃허브에 올리면서 처음으로 README를 제대로 구성해봤는데,
정리된 폴더 구조와 트러블슈팅 문서를 작성하는 경험 자체가 내 코드에 대한 애정을 더 깊게 만들어줬다.
사실 과제를 빠르게 만들고싶어서 급하게 하다 많은 오류가 났었던거같다.. 내일은 다시 코드리뷰해보면서 하나씩 되짚어봐야겠다.
하루하루 화이팅!!!~!!
TopDown 실행화면
'스파르타 코딩클럽 > TIL작성' 카테고리의 다른 글
내일배움캠프 19일차 TIL [메타버스 게임] (2) | 2025.07.24 |
---|---|
내일배움캠프 18일차 TIL [메타버스 게임] (5) | 2025.07.23 |
내일배움캠프 16일차 TIL [팀프로젝트 발표 + 유니티 개발] (2) | 2025.07.21 |
내일배움캠프 15일차 TIL [TextRPG 팀프로젝트] (3) | 2025.07.18 |
내일배움캠프 13일차 TIL [예비군 훈련 + 팀프로젝트 직업 밸런스+스킬 추가] (1) | 2025.07.16 |