Unity/Portfolio Daily Log

VR - BeatFighter 코드 리뷰 및 리팩토링

Korokke 2022. 8. 7. 22:49

코드 리뷰를 하면서 포트폴리오를 작성하는데 몇 달 전에 VR 프로젝트를 할 때 만들었던 코드가 눈에 밟혔다. 그때 당시에는 중복된 문장을 함수로 나누고 클래스를 합치는 등의 능력이 부족했기 때문에 같은 기능을 클래스 두개로 나눠서 작성했었다. (물론 지금이 뛰어나다는 건 아니다 상대적으로 나아졌을 뿐...

 

그래서 리팩토링을 해보았다!!

 

Glove_Left 클래스

이런식으로 Glove_Left와 Glove_Right 두개의 클래스를 만들어 각각의 글러브에 넣어줬었다. (지금은 카멜과 파스칼 표기법만 사용하지만 이때는 스네이크 표기법도 중구난방으로 사용했던 것 같다.)

 

Glove 클래스 (Glove_Left와 Right의 통합 Ver)

Enum 으로 글러브 타입과 색깔을 인스팩터창에서 선택하게끔 했다.

GloveType은 글러브의 좌우를 나타내기 때문에 gloveType은 처음 말고는 변경될 일이 없지만 GloveColor는 플레이어가 색깔을 바꿀 때마다 계속 바뀐다.

 

ChangeGloveColor 매소드

글러브의 색깔을 매개변수로 받아서 반대되는 색깔과 tag로 변경한다.

 

ChangeNoteBreakerTag 매소드

ChangeNoteBreakerTag는 노트를 부수는 역할을 하는 NoteBreaker의 Tag를 변경한다.

이 스크립트는 NoteBreakerLeft와 Right GameObject를 알고 있으며 매개변수로 받는 GloveType에 따라 왼쪽 NoteBreaker인지 오른쪽 NoteBreaker인지 판단하고 Tag를 받은 컬러의 반대되는 색으로 변경한다.