inflearn logo
강의

Khóa học

Chia sẻ kiến thức

[Tăng cấp đoàn kết!] Hệ thống nhiệm vụ và thành tích được phát triển theo mô-đun

Phân tích nhiệm vụ

Task 예시

165

youngsumdd3451

14 câu hỏi đã được viết

1

테스크에 Count Task와 Set Task를 예로 들어주셨는데 두개의 차이점을 모르겠습니다

unity

Câu trả lời 1

1

Developer G

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

단순히 Task의 성공 횟수를 결정하는 공식의 차이입니다.

Count는 공식으로 나타내면 (현재 성공 횟수 + 보고 받은 성공 횟수 = 최종 성공 횟수)입니다.
'슬라임을 100마리 잡아라'라는 Task가 있을 때, (=슬라임 토벌 0/100)

슬라임을 1마리 잡게되면 위 공식에 대입해서
(현재 성공 횟수(0) + 슬라임을 잡은 횟수(1) = 최종 성공 횟수(1))로 Task의 현재 성공 횟수는 1이 됩니다.
(=슬라임 토벌 1/100)

여기서 다시 슬라임을 한마리 잡으면 (1 + 1 = 2)가 되겠죠. (=슬라임 토벌 2/100)
결론적으로 슬라임을 100마리 잡게되면 Task가 완료됩니다. (=슬라임 토벌 100/100)


Set은 공식으로 나타내면 (보고 받은 성공 횟수 = 최종 성공 횟수)입니다.
강의 영상의 내용처럼 '레벨 47을 달성해라'라는 Task가 있을 때, (=레벨 달성 0/47)

현재 레벨(45)을 Task에 보고하게 되면
(현재 레벨(45) = (최종 성공 횟수(45))로 Task의 성공 횟수는 45가 됩니다.
(=레벨 달성 45/47)

여기서 레벨 업을 하게되어 레벨(46)을 Task에게 다시 보고하게 되면 Task의 성공 횟수는 46이 되게 됩니다. (=레벨 달성 46/47)
반대로 레벨이 떨어져서 44가 되면 마찬가지로 Task의 성공 횟수는 44가 되게 됩니다. (=레벨 달성 44/47)
결론적으로 레벨이 47 이상이 되면 Task가 완료됩니다. (=레벨 달성 47/47)

만들기에 따라서는 레벨 달성 Task도 Count 공식으로 설정하고 레벨 업을 할 때마다 몇 렙이 올랐는지 보고해서 계산해도 됩니다.

Count 방식
현재 레벨(45) + 보고 받은 성공 횟수(1) = 최종 성공 횟수(46) (=레벨 달성 44/47)
현재 레벨(46) + 보고 받은 성공 횟수(1) = 최종 성공 횟수(47) (=레벨 달성 47/47)

다만 경험상 '특정 수치보다 큰 지' 확인해야하는 경우 Set 방식으로 계산하는게 여러 상황에 대응할 수 있기 때문에 Set으로 예시를 들어드린겁니다.

해당 내용은 Task Script 작성 강의에서 보실 수 있습니다.
감사합니다.

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

0

21

2

Quest System의 확장성에 대한 질문

0

104

1

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

0

141

2

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

0

165

2

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

0

148

2

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

0

111

2

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

0

99

2

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

0

165

2

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

1

128

3

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

0

84

1

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

0

117

1

Task 에서 Object 타입 사용

0

119

2

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

0

217

1

Destroy() 지연 파괴에 관하여

0

139

1

Action & Delegate

0

178

2

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

0

274

1

궁금한게있습니다

0

293

1

스크립터블 오브젝트 Instantiate?

0

436

1

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

0

338

1

Quest Cancel() 메소드

0

262

2

Task의 IsEqual

0

225

1

실전예제 UI 자료

0

193

1

스크립터블 오브젝트

1

323

1

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

1

305

2