inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템

이벤트를 만들때

408

Vanellope i

작성한 질문수 13

0

퀘스트를 응용해서 이벤트를 만들려고합니다.

이벤트는 단순히 퀘스트를 상속받아서 하면될거같은데 문제는 이벤트 발생시 각 발생 프로세스를 어떻게 구현할지가 고민입니다.

예를들어 어떤 이벤트는 공간 이동후 적이 몰려오는 이벤트가있고 또 어떤 이벤트는 공간 이동 후 인질을 구출하라는 이벤트가 발생 하는식인데

이벤트를 스크립터블 오브젝트로 만들고 거기에 변수로 이벤트 액션이라는 스크립터블오브젝트를 만들어서 해당 이벤트 액션에 각 기능 프로세스를 구현 하려고했는데 변수 세팅하기가 힘들고 먼가 하드 코딩이 될거같아요..

혹시 저런식에 이벤트를 어떻게 만드는게 깔끔한가요??

unity

답변 1

0

Developer G

안녕하세요.
정확히 만들려고하시는 것이 어떤 것인지 정보가 부족하여 답변이 부정확할 수 있는 점 양해부탁드립니다.

제가 이해한바에 따르면 Quest를 상속받는 Event를 만들고, Event Action으로 몬스터 웨이브, 인질 구출을 구현하시겠다는 얘기 같은데요, Event Action으로 통일 시키는 것보다는 각 기능을 따로 구현하는게 나을 것 같습니다.

예를 들어, 몬스터 웨이브는 EnemyRaidSytem을 만들어서, 공간 이동 로직이 실행된 후 코드나 Trigger를 통해서 EnemyRaidSystem을 Start하여(EnemyRaidSystem.Start()) 적이 몰려오게하고(만약 몬스터 웨이브를 모두 막아내야 공간에서 탈출할 수 있는 Event라면 몬스터 웨이브를 막아내는 Quest도 주면 될 것 같습니다.),
마찬가지로 인질 구출은 공간 이동 로직이 실행된 후 코드나 Trigger를 통해 인질을 특정 위치로 데려가거나 인질 주변의 적을 모두 제거하면 완료되는 Quest를 부여하는 방식으로 구현할 수 있을 겁니다.

몬스터 웨이브, 인질 구출은 객관적으로 봤을 때 구조적 통일성이 없기 때문에, 로직을 억지로 통일 시킬려고하면 반대로 통일 시키지 않은 것보다 못하게 코드가 꼬일 수가 있습니다. 스스로 판단했을 때 '규모가 크다' 싶은 시스템과 '통일성이 없다' 여겨지는 시스템은 따로 구현하고, 필요한 곳에서 그 시스템을 실행하는 방식으로 구현할 필요가 있습니다.

감사합니다.

0

Vanellope i

아하 감사합니다 너무 모듈식으로만

구현하려고 한거였네요..

Task 구현 28:36 Equals 에서 잘 모르는 부분이 있습니다.

0

31

2

Quest System의 확장성에 대한 질문

0

109

1

공부 방향에 대해 궁금한 점이 있습니다.

0

147

2

End()와 Complete() 함수를 따로 구현한 의도

0

171

2

Target의 value에 Object 자료형 관련 질문입니다!

0

153

2

TaskGroupState에 대하여 질문이 있습니다

0

115

2

Elite와 Normal Germ의 IsTarget()질문입니다.

0

102

2

퀘스트 시스템을 확장하면서 생긴 의문점 입니다.

0

169

2

퀘스트 클리어해도 동일 퀘스트가 노출됩니다

1

133

3

퀘스트 누적 클리어 횟수에 대해 여쭤보고싶습니다.

0

89

1

프로퍼티 사용 질문입니다.

0

123

1

Task 에서 Object 타입 사용

0

124

2

파일 저장방식, 퀘스트 실패에 관하여 여쭤보고싶습니다.

0

222

1

Destroy() 지연 파괴에 관하여

0

143

1

Action & Delegate

0

183

2

강의에서 리워드 관련 언급은 없으셔서 질문드립니다.

0

282

1

궁금한게있습니다

0

298

1

스크립터블 오브젝트 Instantiate?

0

443

1

원하는 타이밍에 퀘스트를 등록하고 싶다면 어떻게 해야할까요

0

344

1

Quest Cancel() 메소드

0

269

2

Task의 IsEqual

0

232

1

실전예제 UI 자료

0

200

1

스크립터블 오브젝트

1

333

1

Task 예시

1

173

1