Skip to content

퀘스트 기능

Hansu Park edited this page Apr 26, 2024 · 3 revisions

플레이어가 퀘스트 영역으로 이동할 수 있도록 돕고 퀘스트 영역 진입, 완료 여부를 감지하여 각종 액션을 실행한다.

퀘스트 영역

에 퀘스트 영역이 정의되어있다. QuestZoneBackground를 조절하여 퀘스트 영역에 대한 그래픽을 바꿀 수 있다.

처음에는 모든 영역의 그래픽이 disabled 되어있고, 첫 번째 퀘스트(A)만 enable 되어있다.

QuestZoneTrigger.csOnTriggerEnter, OnTriggerExit를 통해 퀘스트 영역을 들어갔을 때 / 벗어났을 때의 액션을 실행할 수 있다.

퀘스트 완료 조건

스크립트 IQuest를 구현한 퀘스트 객체들의 canComplete() 를 수정함으로써, 퀘스트 완료 조건을 바꿀 수 있다. 현재는 A,B,C 각각 키보드 입력 Y,U,I를 누를 경우 완료되도록 하였다.

완료시 동작

퀘스트 객체들의 OnComplete() 을 수정함으로써, 완료시 어떠한 액션(효과음 등)을 줄 것인지 설정할 수 있다.

구현

유니티 상에

  • Quest/QuestZone A, B, C
  • Quest/QuestObserver 가 존재한다.

퀘스트존 안에 퀘스트 배경, 퀘스트 스크립트가 들어가 있다. 퀘스트 옵저버가 퀘스트들을 관리한다. (완료 여부를 통보받아, 다음 퀘스트 실행시킨다.)

화살표는

에 위치함. (투명한 원통으로 플레이어 - 화살표간 거리를 조절함.)