인프런 커뮤니티 질문&답변

코리니님의 프로필 이미지
코리니

작성한 질문수

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

Quest System 구현

Destroy() 지연 파괴에 관하여

작성

·

55

0

QuestSystem구현 강의에서

12:51쯤에 Destroy(quest, Time.deltaTime)을 사용했는데

바로 파괴해도 될 것 같은데 한 프레임을 쉬는 이유가 있나요?

즉시 파괴할 경우 이벤트나 다른 참조하는 곳에서 error가 날까봐 그런건가요?

답변 1

0

Developer G님의 프로필 이미지
Developer G
지식공유자

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

지연 파괴를 해주는 이유는 다른 Script에서 null check를 통과하여 Quest의 Cancel 상태를 확인할 시간을 주기 위해서입니다. 보통은 Cancel을 onQuestCanceled event나 onQuestStateChanged event로 확인하겠지만 그럴 수 없는 경우를 대비한 작업입니다. 강의에서는 이번 Frame에서만 상태를 확인할 수 있게 한 Frame만 쉬어줬는데 짧다고 여겨질 경우 여유를 두고 2~3 Frame 정도를 쉬어줘도 됩니다. 물론 이런 대비가 불필요하다고 여겨지시면 지연 파괴 부분을 없애셔도 아무 문제 없습니다.

감사합니다.

코리니님의 프로필 이미지
코리니

작성한 질문수

질문하기