Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

Luna

[TIL Day 29] 개인 과제 진행 2 본문

🎮 Unity_7 TIL WIL

[TIL Day 29] 개인 과제 진행 2

fociend 2025. 2. 19. 15:53

오늘의 학습 키워드

- 개인과제

 

공부한 내용 본인의 언어로 정리하기

어제와 마찬가지로 개인 과제 개발을 계속 했기 때문에 있었던 문제 (트러블슈팅)위주로 내용을 정리해보려 한다.


트러블슈팅

별 거 아닌 거 였어도 다시 한 번 기초적인 실수를 하지 않기 위해 적어 놓는 부분도 있습니다. 

의외로 너무 간단해서 어이가 없을 정도여도 실수는 실수이기 때문에 정확하게 짚고 넘어가려고 모든 것을 적었습니다.

1. Flappy Plane -> Flappy Bird 로 바꾸다!

이번에 제가 만든 과제 컨셉 자체가 픽셀도트이기 때문에 원래 강의내에서 만들었던 스프라이트 이미지는 2D이긴 하지만 픽셀도트 느낌이 아니어서 새로운 에셋 자료를 찾아서 기존 코드를 붙여넣기 하는 식으로 작업을 했습니다.

(코드를 다시 짜기엔 너무 시간이 부족해서 선택한 방법 .. 어짜피 자료만 갖다 붙이면 된다 생각했기에..)

그래서 일어난 문제점..  캐릭터 오브젝트의 rotation z를 freeze했는데도 z가 계속 고정이 되지 않는 문제가 있었습니다. 

 

A. 바깥에서 수정이 되지 않으면 코드 문제라 생각하고 코드를 뜯어 보니 코드 내에서 회전을 주는 값이 있었고 그 값은 이전 강의내용에 있는 스프라이트에 맞는 값이었습니다. 바깥에서 고정시키면 고정이 될 줄 알았는데 코드로는 계속 굴릴 수 있었나봅니다.. 아무튼 코드에 있는 rotation 값을 아예 0으로 바꾸었더니 해결되었습니다. 

 

2. 장애물 반복 로직 

이 코드도 동일하게 전에 있던 내용을 그대로 써서 문제 없을 거라 생각했지만 자꾸 장애물이 겹쳐지거나 제대로 스폰이 되지않는 등 값을 외부에서 조절 할 수 있게 해놨는데 무슨 수를 써도 장애물이 제대로 자리를 잡지 못 하는 문제가 있었습니다.

 

A. 1시간 반동안 고민 했는데 갑자기 번뜩하고 떠오르던, Pivot 변경이 떠올랐습니다. Pivot을 가운데가 아닌 Top, Bottom을 정해뒀던게 기억이 났고 그걸 토대로 제 스프라이트에 있던 Pivot을 변경했더니 해결되었습니다.. (진짜 이런 문제는 너무 화가 날 지경)

 

3. BgLooper 

BgLooper 빈 오브젝트를 만들고 스크립트를 연결 시켰지만 BgLooper가 작동하지 않았습니다.

 

A. 당연하게도 카메라를 따라가야 콜라이더도 이동을 해서 체크를 할 수 있는 건데 카메라 자식오브젝트에 넣지 않고 작동을 안 한다고 하고 있는 꼴이었습니다. 이 문제도 진짜 조금만 생각해보면 되는 건데 역시 무언가를 따라만드는 건 대충하면 안된다는 걸 다시 생각해보게 되었습니다.

 

4. highScore -> bestScore

게임 매니저에서 highScore에서 bestScore로 변수명을 바꾸는 작업을 했습니다. 비주얼스튜디오 내부에 이름 바꾸기라는 아주 좋은 기능이 있기에 ,, 이걸 이용해서 바꿔서 문제가 없을 거라 생각했지만 문제가 발생했습니다.

 

A. 문제는 String 값을 비교하는 코드가 문제였습니다. 

PlayerPrefs.SetInt("BestScore", bestScore); // 최고 점수 저장

지금에서야 "BestScore"이라고 직접 변경했지만, 이 점수 저장하는 기능을 구현할 때 String 값을 써서 이름을 바꾸어도 저기까지 바뀌진 않았습니다. 변수명은 최대한 변경을 하지 않도록 하고 처음부터 알기 쉬운 변수명으로 잘 짓는게 중요한 것 같습니다. 그리고 어쩔 수 없이 수정사항이 생길 때면 고칠 때 더 꼼꼼히 봐야겠다고 생각했습니다.

 

5. 스프라이트 위에 텍스트(?)

스프라이트 위에 텍스트를 얹고싶어서 스프라이트 위에 text 컴포넌트를 추가했지만 추가가 되지 않음. 

스프라이트 위에 텍스트를 얹고싶었는데 계속 실패함

 

A. 스프라이트가 그려지는 곳과 Text가 그려지는 곳이 다르고 (Canvas만 봐도 그려지는 위치가 다름) 애초에 스프라이트 위에 텍스트 컴포넌트는 넣을 수가 없다는 문구가 나왔습니다. 그럼 어떻게 스프라이트 위에 글자를 새겨넣나? 를 구글링하다가

TextMeshPro UI라는 것이 있기에 넣어보았지만 제가 원하는 값이 나오지 않았습니다. 

Canvas를 overlay하는 방식으로 다른 UI를 관리하고 있었기 때문에 World Space로 바꿀 수도 없었습니다.  그래서 Canvas를 하나 더 만들어서 캔버스1,2를 만들고 캔버스1은 overlay로, 캔버스2는 World Space로 따로 나누니 텍스트를 스프라이트 위에 배치 할 수 있었습니다. (근데 이게 맞는 방법인지 모르겠습니다 ㅠ..)

 

 

오늘의 회고

오늘은 개인 일정이 있어서 바쁜 과제를 뒤로하고 여기까지만 작성하게 되었습니다. 

일어나자마자 번뜩거리면서 생각 난 아이디어나 해결법들을 적용시키니 어느정도 완성이 되어가고 있는 느낌입니다.

 

내일 공부할 것

- 과제 제출 2시반까지 완료하기