버그 해결을 위한 모든 질문을 던져
0 votes
444 views

안녕하세요 게임 프로그래머라고 해야하기도 애매한 신입으로 일하고 있는 초짜입니다...

글이 길게 진행될 것 같으니 양해 부탁드리겠습니다.

 

회사가 이번에 게임개발을 시작을 해서 혼자 유니티로 작은 프로젝트를 맡아 진행하고 있습니다.

이전에 만들던 게임에서 많은 삽질들을 해보고 어떤식으로 구조를 짜야할까 생각을 해봤는데

결론이 나지 않습니다... 

이전에는 클래스마다 서로간의 많은 참조로 인한 구조적인 문제라고 해야할까요?

이부분에 한계를 느껴서 최근 최대한의 간섭을 줄이자! 라고 생각을 하며 개발을 하고 있습니다

 

EnemyManager 뿐만 아니라 다른 매니저도 대부분 저런 방식으로 개발이 되어있습니다.

Manager들에는 대부분 생성, 관리를 목적으로 잡는것이 Manager 들의 역할이라 생각해 그 외에는 기능을 추가하지 않았습니다.

 

GameManager에서 여러 매니저들의 이벤트들의 Listner를 추가하는 방식이죠

간단하게 코드로 예를들어

이런 느낌이죠.. 적이 생성될 때 마다 OnCreateEnemy를 Invoke 해주고 Listner에게 전달하는 방식입니다.

사실 이것이 간섭을 안한다 라고 하기도 모호한거 같네요

 

이렇게 개발을 하다보니 GameManager에 다 떄려박게 되는(?) 구조가 되어가고 있는데

어떻게 구조를 바꿔가면 좋을까요?

또한 선배님들은 여러가지 이벤트 처리를 어떻게 하시는지도 궁금합니다!

예를들어 플레이어가 총을 쏠때 발생하는 이벤트들 ( 이펙트 생성, 총알 생성, 보유한 총알 감소 ) 

이런 여러가지 이벤트들을 좋은 구조로 처리하는 방법이 무엇이 있을까요?

 

긴 글 읽어주셔서 감사합니다.

 

 

asked (18 point) , 444 views

2 answers

+1 vote
유니티가 컴포넌트패턴으로 디자인되어있어서

메니저에선 최소한의 관리만 하고 단일 컴포넌트들로 구성해서 만드는걸 추천합니다
answered (28 point)
+1 vote
저는 이렇게 만들고 있습니다.

이펙트 생성 이벤트: 웨폰이나 발사체가 스스로의 이팩트를 들고있음

총알 생성: 무기를 추상화 한 웨폰이 fire를 할 때 생성

총알 감소: UI를 위한 기능인것 같은데 옵저버 패턴

한빛미디어에서 나온 <게임 프로그래밍 패턴> 로버트 나이스트롬 저 추천드립니다.
answered (44 point)

버그 해결을 위해 도움을 구하고, 도움을 주세요. 우리는 그렇게 발전합니다.

throw bug 는 프로그래밍에 대한 전분야를 다룹니다. 질문,논의거리,팁,정보공유 모든 것이 가능합니다. 프로그래밍과 관련이 없는 내용은 환영받지 못합니다.

221 질문
346 answers
356 댓글
375 users