오늘은 현재 개발 중인 인디게임 RushOur의 상점 로직을 구현했다.
먼저 아래 보이는 '찜' 버튼에 Bolt - Flow Machine 컴포넌트를 추가한다.
버튼을 처음 클릭했을 때와 다시 클릭했을 때를 구별하여
버튼을 누르면 다시 누르기 전까지 눌러져있는 느낌을 구현하기 위해 IsSelect라는 Bool값 변수와
버튼의 이미지를 직접 도트로 찍어서 사용했다.
False를 타고 내려오면 아래와 같은 로직을 거친다.
1. Shop을 전체적으로 관리하는 Manager Object에 변수인 BuyList에 현재 '찜' 상태인 상품이 있는지 Check하고
있다면 다음단계로, 없다면 담긴 상품이 없다는 Animation을 발생시킨다.
2. Sequence-2 : 버튼을 '찜' Button을 누를때 Button에 포함된 Text도 같이 눌러지는 듯한 효과를 주기 위해
Text를 textBtn이라는 변수로 등록하여 누를때 포지션이 조금 내려가게 설정한다.
Sequence-1 : Button이 눌러진 상태이니 IsSelect 변수를 True로 변경하고 눌러진 상태를 표현하는 Sprite를 Set한다.
Sequence-1-1,2 : '찜' Button을 누르면 '찜' 상태의 상품만 관리하는 BuyPanel과 '찜'상태의 상품들을 한꺼번에 구매할 수 있도록 하는 CartBuyButton을 Active 한다.
True를 타고 올라가면 아래와 같은 로직을 거친다.
Button이 눌러진 상태에서 다시한번 눌렀기때문에 Button을 원래 모양으로 돌려줘야 한다.
False쪽 로직과는 다르게
IsSelect를 Sequence 전에 False 값으로 변경한다.
BuyList에 '찜' 상태의 상품이 하나도 없다면 아예 '찜' 버튼을 통해 '찜' 목록을 활성화 할 수 없도록 만들기 위해서다.
1. 첫 Sequence는 False쪽 로직과 동일하다.
그리고 여기서 다음 단계로 넘어가기 전에 Delta Time 만큼 갭을 두는 이유는
BuyPanel을 Active off 하기전에 초기화해야하는 값들('찜'상태인지 Check하는 로직)이 있기 때문이다.
(여기서 생각보다 많이 해맸다.)
'찜'상태의 상품을 관리하는 BuyPanel의 로직은 다음과 같이 시작한다.
간단하다. 반복문을 통해 현재 '찜'상태의 상품을 Check하고 그 값이 True라면 Reposition과 함게 Active를
False라면 Active Off한다.
# Shop Scene 남은 일
1. '목록' Button을 클릭하게 되면
지금까지 구매한 상품들을 InGame에 적용시킬 수 있는 패널을 구성하고 로직을 구현
2. 패널 Scrolling
3. InGame 적용
*사용한 툴 및 비주얼 스크립트 : Unity Bolt, Asset Dotween(강추)
*이미지 : 직접 구현 (팀원)
# 직접 구현한 Bolt Macro 첨부
게임개발에 대해 아무것도 몰랐던 내가
2주만에 InGame 구현을 끝내고
상점창을 구현하고 있다.
게임개발을 해보고 싶으신 분들은 너무 어렵게만 생각하지 마시고
자그마한 프로젝트라도 일단 시작해보는 것을 추천드립니다!
(툴이 익숙하지 않으면 다루기 어려운건 모두에게 똑같다!
+ 나는 기초가 안되어 있어서 초반에는 엄청 해맸고 지금도 많이 해매는 중...)
'Rush Our Development (indie game)' 카테고리의 다른 글
2021.04.22 RushOur 파티클 작업, 빌드업 세팅, 배경 작업 (Unity Bolt, Master Audio(Unity Asset)) (0) | 2021.04.23 |
---|---|
2021.04.21 RushOur 구매목록 저장 기능, 사운드 작업 (Unity Bolt, Master Audio(Unity Asset)) (0) | 2021.04.22 |
2021.04.20 RushOur 옵션로직, 인게임 타임 Stop기능, 화면전환 로직 구현(Unity Bolt) (0) | 2021.04.21 |
2021.04.19 RushOur Shop 목록 로직구현 및 인게임 적용(Unity Bolt) (0) | 2021.04.20 |
2021.04.17 블로그를 시작하다 (0) | 2021.04.17 |