-
Cry Npc의 기능 구현과 Key Object의 기능 구현을 나누려고 일지를 나눈 이유도 있지만,
선언할 변수와 추가를 해야 할 것을 나누려는 이유도 있었습니다.
하지만 곰곰히 생각해 보니 초기 기획 흐름도에서 플레이어가 로그아웃을 하게 되면 '리셋'이 되고
추가 변수는 DataManager에 퀘스트가 완료 됐는지 판단할 변수와
Cry NPC는 이 변수를 가지고 조건을 걸어주면 되는 것이었습니다.
가장 먼저 DataManager에
'stageLevel01' 변수를 선언해 주었습니다.
초기 상태는 stageLevel01 = false로 해금 여부가 False 인 상태입니다.
다음은 KeyObjectController 스크립트의 선언 변수입니다.
popupAnimation
popupAnimation 스크립트의 Check 변수에 접근하기 위함입니다.
backGroundImage
간단한 기믹 게이지 요소의 백그라운드 이미지입니다.
cooldownImage
쿨다운을 나타낼 이미지입니다.
decreaseSpeed
이미지의 Amount를 조절할 때 사용할 값 변수입니다.
isPlayerTouch
플레이어가 열쇠 오브젝트에 닿았는지 판단할 변수입니다.
가장 먼저 OnTrigger로 Enter(터치하였을 때)와 Exit(떨어졌을 때)
를 검사해 주었습니다.
터치가 되면 판단할 Flag는 true로 변경해 주며
게이지 오브젝트를 활성화해줍니다.
터치가 떨어지면 판단할 Flag는 false로 변경해 주며
게이지 오브젝트는 비활성화해 줍니다.
다음은 Update() 함수입니다.
이미지의 fillAmount를 조절해 주었으며,
fillAmount가 0보다 작거나 0이 된다면
"PopupAnimation" 스크립트의 checkNumber는 4로 변경해 주었습니다.
만일 isPlayerTouch가 false로 떨어지게 된다면
fillAmount는 다시 1로 초기화해 주었습니다.
* fillAmount의 초기값의 1에서 0으로 0.1씩 감소시켜주고 있습니다.
다음은 팝업 된 UI를 애니메이션 시켜주는 PopupAnimation 스크립트입니다.
가장 먼저 Start 함수를 보자면 stageLevel01의 값을 받아와 주었는데
이 부분의 구현은, 재접속했을 시 조건을 검사하기 위함입니다.
다음은 UI가 팝업 될 때 실행될 OnEnable() 함수에서
checkNumber의 값을 정해주는 구현 부분입니다.
가장 먼저 stageLevel01이 true 라면
checkNumber의 값은 4가 됩니다.
이후 기존 로직은 checkNumber의 값이 4가 아닐 때 실행되게 해 주었습니다.
마지막으로 ShowPopup() 함수가 실행되는데
CheckNumber가 4 라면 실행이 되며
추가적으로 Animator 컴포넌트를 비활성화해주었고
CryNPC의 Sprite를 변경시켜 주었습니다.
CheckNumber가 4 일 때는 두 가지 경우입니다.
1. key 오브젝트와 상호작용 후 CheckNumber가 4로 변경되어 NPC를 클릭하면 실행
(게임 플레이 중에 조건 검사)
2. 저장된 데이터를 가져와 stageLevel01가 true 인지 판단해 CheckNumber를 4로 변경
(재접속했을 때 조건 검사)
예외 처리를 해주기 위하여 재접속 시에도 stageLevel01을 검사하여
true 일 시
텍스트, 스프라이트, 애니메이션 비활성화 등 상황에 맞게 변경해 주었습니다.
CRY NPC만 한다면 동작 구현은 잘 되었는데,
Helper Npc와 Cry Npc 모두 이 Awale가 실행되는 점에서
stageLevel01이 true 라면 checkNumber는 항상 4가 되는 문제가 있었습니다.
'스크립트를 새로 작성해서 작업을 할까?' 하다가
생각해 보니 간단한 조건문만 걸어주면 되어서
다음과 같이 parentObject.name을 검사해 해결하였습니다.
현재 stageLevel01이라는 저장된 데이터 변수를 사용할 수 있습니다.
이 변수를 활용해
다음 스테이지로 넘어갈 수 있고
UI 상에 표시도 할 수 있게 되었습니다!
가장 먼저 플레이어의 UI의 레이아웃을 구성하고
다음 스테이지로 넘어가는 구현을 완료해 보겠습니다.
*빠르진 않더라도 천천히 한 걸음씩 포기 않고 나아 가겠습니다.
현재 폭탄 피하기나 두더지 잡기 퀘스트 등 생각나는 게 몇 가지 있는데
기능적으로 추가를 빨리 해보고 싶습니다 ㅎㅎ
감사합니다!
'유니티 프로젝트 > RPG-2D' 카테고리의 다른 글
Land Of Memories - Menu - Stage (0) 2024.11.21 Land Of Memories - UI Design (0) 2024.11.21 Land Of Memories - Quest (1) (0) 2024.11.20 Land Of Memories - Pixel Art (0) 2024.11.19 Land Of Memories - Loading Image (0) 2024.11.18