inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

Quest 구현

Quest Cancel() 메소드

266

정지훈

작성한 질문수 1

0

Quest.cs

Complete() 메소드에서 이벤트들을 초기화(해제)시키는데

Cancel() 메소드에서는 이벤트들을 초기화를 안 하는 이유가 있을까요?

OnRegister()에서

task.onSuccessChanged += OnSuccessChanged;

이벤트를 사용해서 Quest를 취소했을 때도 이벤트를 초기화해야 될 것 같다고 생각돼서 질문 남겼습니다!

unity

답변 2

1

Developer G

수강해주셔서 감사합니다.

이후에 보실 QuestSystem Script에서 Quest가 Cancel이되면 Destroy 함수로 Quest를 파괴합니다.
그래서 굳이 event를 초기화해주지 않은 것입니다.
참고로 Quest 완료 시에 event를 초기화시키는건 Quest 완료시엔 Quest가 QuestSystem의 Completed List에 보관되기 때문에 불필요하게 메모리를 차지하고 있지 않게 하기 위해서입니다.

다만, 강의의 코드는 하나의 가이드일 뿐, Complete와 Cancel 함수에 통일성을 주고 싶다고 생각이 드시면 Cancel 함수에도 event 초기화 Code를 넣으셔도 됩니다.

감사합니다.

0

정지훈

아하 이해가 됐습니다. 감사합니다

그럼 다른 스크립트에서도 이벤트들을 사용할 때 Destroy 로 삭제를 한다면 굳이 이벤트를 초기화할 필요가 없다는 것이죠?

 

0

Developer G

안녕하세요. 제가 미처 답변 글을 못봤습니다.

Destroy를 할 시 때가되면 가비지 컬렉팅이 되므로 굳이 이벤트를 초기화해주지 않으셔도 됩니다.

답변이 늦어 죄송합니다.

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

0

27

2

Quest System의 확장성에 대한 질문

0

108

1

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

0

144

2

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

0

167

2

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

0

150

2

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

0

113

2

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

0

101

2

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

0

167

2

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

1

130

3

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

0

85

1

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

0

120

1

Task 에서 Object 타입 사용

0

121

2

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

0

218

1

Destroy() 지연 파괴에 관하여

0

141

1

Action & Delegate

0

180

2

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

0

278

1

궁금한게있습니다

0

294

1

스크립터블 오브젝트 Instantiate?

0

439

1

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

0

340

1

Task의 IsEqual

0

229

1

실전예제 UI 자료

0

197

1

스크립터블 오브젝트

1

327

1

Task 예시

1

168

1

퀘스트의 상태인 QuestState를 다른 스크립트에서 받을 수 있나요

1

308

2