왜.... 오셨나요?

부끄러워요

유니티개발 TIL

5주차 1일 TIL_유니티 입문(유사 2D메타버스 만들기_버그수정)

와피했는데 2025. 7. 28. 13:52

들어가기 앞서

이전에 허수아비 치는 펜싱게임을 구현 완료한뒤 주말간 UI작업과 플래피 버드를 추가하는 과정이 있었다.....

정말 많은 일들이 있었는데 TIL를 작성하지 않았다... 그래서 고봉밥이 될 글이 될것같아서 최대한 축약으로 핵심만 다음 회차때 적어보도록 하겠다 일단 이 글은 버그수정이 주된 글이다


버그수정 및 수정사항


 

● 기존에 DrawRay()에서 OnTriggerEnter2D로 바꿈
업데이트 마다 돌아서 딱한번만 발동하게 하려는 의도와 다르게 된다 그래서 한번 나와야할 UI가 접촉한 상태로 무한대로 나오기 때문에 바꿈

● 오타로 인한 null 자주 일어나는 현상 방지법
UI, Resource 매니저를 자주 사용하다 보니 경로에 대한 오타가 자주 발생해 null 인스턴스가 엄청 자주 떴다 그리고 원인을 찾는데 사막에 바늘 찾기가 강제로 시작되어 내눈만 충혈되고 피곤했다 
GameManager.UI.ShowPopUpUI<BirdScoreBoardUI>("Prefabs/UI/BirdScoreBoardUI");
해당 구문처럼 string값을 직접 입력 하기 보단 

GameManager.UI.ShowPopUpUI<BirdScoreBoardUI>(string변수);
start()나 Awake()에 변수로 한번만 담아두면 이후 유지보수에 훨 수월해진다

● GitHub push 오류(용량제한)
Git에 pust할때 용량제한(100MB)이 있다 그래서 아무리 푸쉬해도 로컬은 되지만 github에는 올라가질 않는다
이럴땐 용량이 큰 파일들은 별도로 ignore 하여 관리하던지 용량을 줄이는 최적화를 진행하는것이 좋다

본인은 글자 폰트를 에셋으로 만들다가 에셋이 130MB 정도 되어서 다시금 에셋을 새로 만들어 용량을 줄였다
(의외로 폰트가 용량이 쉽게 넘어갈수있으므로 이후로도 조심하도록 하자)

● GameManager.Resource.Instantiate();와 GameManager.Resource.Destroy()를 같이 쓰면 생기는 문제
두 함수를 같은 함수 또는 바로 이어서 쓰려고 하면 prefab오류가 난다 Instantiate에서는 문제가 없지만 Destroy에서는 원본을 지우는 행위를 유니티가 막고있어서 오류가 난다
해결법으론 GameObject prfab = GameManager.Resource.Instantiate(); 별도로 담고 GameManager.Resource.Destroy(prfab) 담은 변수를 지우면 된다

 

GameManager.Resource.Instantiate();로 생긴 clone이 무한정 생산되는 현상 
총알이 아니고서야 특정 오브젝트는 다시금 처음위치로 돌아오던지 게임내 하나만 생성되어야 하는 조건이 붙을시 무한정 생산되는 clone은 참으로 골치가 아프다
그래서 이럴땐 static GameObject prfab; 
static을 붙여서 재초기화를 막아 1번만 실행되게 하면 되거나
별도 GameManager 같은 클래스에서 참조해주게 관리하는 형태면 무한정 증식은 막을수있다

 

● UI들에게 많은 기능을 요구할때 생기는 문제
제일 골치가 아팠던 문제가 별도의 클래스 다이어그램 또는 기능 다이어그램 같은 연관구조를 그리면서 하지않을때 UI별 구조연계에서 순서, 기능들을 놓치기 쉽다 그래서 테스트중 많은 버그와 기능고장이 일어날때 그걸 찾는데 해매고 기능구조를 짤때고 머리가 기억하는 한계에 쉽고 봉착하여 힘들었다
이후 설계는 최대한 UI가 직접적으로 하는일들을 줄이고 역할을 다른 manager들에게 분배해서 클래스 하나에 너무많은 역할을 주어주는걸 막아야겠다
(결국 처음 와이어프레임, 다이어그램을 먼저 설계하고 구현하는게 몸이 편함)

 


마치며.


 

일주일간 기획-구현-수정 이 3단계를 무한정 반복하니 머리가 터질듯이 멍해젔다 이제는 정말 머리가 하얀색으로 정신과 시간의 방처럼 되었다 어느정도 재충전의 시간좀 갖고 다시금 열심히 개발에 임해보도록 할듯하다

오늘 내 머리가 무너젔어 다 가저가도 좋아 누가좀 대신 해줘