|
| 1 | +# 팩맘 코드 리뷰 |
| 2 | + |
| 3 | +프로젝트에서 진행한 협업자 우연님의 밀린 코드 리뷰 |
| 4 | + |
| 5 | +## SoundSystem |
| 6 | + |
| 7 | +사운드 매니저를 싱글톤으로 두는 게 좋을지 궁금합니다. |
| 8 | + |
| 9 | +지금 SoundSystem을 어떤 구조로 수정해야 하는지 알려주세요 |
| 10 | + |
| 11 | +저는 각 시스템마다의 정보만 인스펙터를 통해 적어주고 알아서 파싱해서 저장해두고 사용되는 스크립트에서 접근해서 사용하는 방법을 생각 중 입니다.. |
| 12 | + |
| 13 | +계속 고민해봐야할 시스템이라 어떤 방향이든 계속 생각해보겠습니다. (지금은 조금 문제가 있다고 생각) |
| 14 | + |
| 15 | +## 코드 구조 궁금한 점 (피드백?) |
| 16 | + |
| 17 | +인스펙터로 주입하는 방식은 같은 프리팹 내에서만 하는 게 좋은 것 같습니다.(저도 수정 예정) |
| 18 | + |
| 19 | +다른 레벨이라면 코드를 통한 참조로 연결해보는 것도 도전해보면 좋을 것 같아요 |
| 20 | + |
| 21 | +### PMGameController |
| 22 | + |
| 23 | +*PMGameController.cs 70번째 줄* |
| 24 | +```cs |
| 25 | + private void AssignController() |
| 26 | + { |
| 27 | + pacmom.gameController = this; |
| 28 | + |
| 29 | + for (int i = 0; i < dusts.Length; i++) |
| 30 | + { |
| 31 | + dusts[i].gameController = this; |
| 32 | + } |
| 33 | + |
| 34 | + foreach (Transform coin in coins) |
| 35 | + { |
| 36 | + coin.GetComponent<Coin>().gameController = this; |
| 37 | + } |
| 38 | + |
| 39 | + foreach (Transform vacuum in vacuums) |
| 40 | + { |
| 41 | + vacuum.GetComponent<Vacuum>().gameController = this; |
| 42 | + } |
| 43 | + } |
| 44 | +``` |
| 45 | + |
| 46 | +이런 DI 과정은 좋은 데 PacMom의 경우에도 이미 인스펙터로 지정된 상태이더라구요 |
| 47 | + |
| 48 | +PacMom에선 이를 인스펙터로 노출하지 않고 Controller 입력받는게 좋을 것 같은데, 이렇게 구현하신 목적이 궁금합니다! |
| 49 | + |
| 50 | +반대로 Dust의 경우엔 런타임에 잘 할당되는 것 같아서 궁금합니다. |
| 51 | + |
| 52 | +구조가 간단해서 Controller에서 전체를 관리한다고 하면 관리받는 대상은 관리하는 사람을 모르는 게 좋을 것 같습니다. |
| 53 | + |
| 54 | +### PM Sprite Controller |
| 55 | + |
| 56 | +각 Sprite 컨트롤러를 인터페이스로 만들어서 관리하면 더 좋을 것 같다. |
| 57 | + |
| 58 | +추상적인 말이긴 한데 이 부분이 중복성을 인터페이스로 묶어서 만들어보면 도움이 되실 것 같아서 추천드립니다. |
| 59 | + |
| 60 | +### Timer |
| 61 | + |
| 62 | +위 내용과 같이 Timer도 마찬가지로 서로 의존성을 가지고 있는 것 보다 Gm에서 주입을 통해 넣어주는게 좋을 것 같아요 |
| 63 | + |
| 64 | +### PlayerInput |
| 65 | + |
| 66 | +이 부분은 이후 설정창 때문에 제가 추가 작업을 통해서 Input을 하나로 둬야 합니다. (저번 작업 이어서) |
| 67 | + |
| 68 | +++ 설정창을 구현 예정인지 궁금합니다. |
| 69 | + |
| 70 | +### PMUIController |
| 71 | + |
| 72 | +저는 인스펙터에 3가지 관리자를 두기보다 다 따로 네이밍을 하는게 좋다고 생각하는데 어떠신가요? |
| 73 | + |
| 74 | +or UI쪽에 달아주는 것도 좋을 것 같아요 (성격에 맞춰서) |
| 75 | + |
| 76 | +### Rapley |
| 77 | + |
| 78 | +처음 public 부분 캡슐화되면 좋을 것 같습니다. (movement안쪽처럼) |
| 79 | + |
| 80 | +## 정리 |
| 81 | + |
| 82 | +전체적으로 서브 시스템이라 구조를 탄탄하게 굳이 가져가지 않아도 좋지만, 지금처럼 리팩터링을 통해 이후 작업할 시스템에 대해서 좋은 구조를 고민해보는 것도 좋은 것 같습니다. |
0 commit comments