본문 바로가기
ぺ Let's do it ぺ/⒈유니티(Unity3d)

[별아재군/unity2d] "삼국지 영웅전" 영웅관리 화면 첫번째 보유한 캐릭터 나타내기

by 망고부인 2021. 9. 26.
728x90

[별아재군/unity2d] "삼국지 영웅전" 영웅관리 화면 첫번째 보유한 캐릭터 나타내기

2D 기반의 게임을 개발 목표로 하면서..

제목에 3d라고 써있으니까 조금 말이 안되는 것 같아서..

오늘부터는 unity2d 라고 말머리를 바꿈.. ㅎㅎ

 

오늘은 캐릭터 정보를 확인하고..

스킬을 업 시키거나 장비를 장착할 수 있는

HeroManagement 영웅관리 기능을 구현해 보려고 합니다.

 

일단, 화면구성은 아래와 같이

영웅관리를 클릭하면 

"성장" 화면을 보여주게 되고..

스킬, 장비 등등은 나중에 구현할 생각입니다..

 

일반 변수들을 선언해 합니다..

보드를 담당할 변수 GameObject HeroBoard

플레이어 정보가 들어있는 변수 SaveData MySaveData

플레이어가 소유하고 있는 캐릭터 정보가 들어 있는 List<Hero> MyHeroList

 

모든 캐릭터 정보가 들어 있는 List<Hero> AllHeroList

모든 캐릭터 이미지가 들어있는 Sprite[] AllHeroImage

 

플레이어가 소유하고 있는 캐릭터를 넣을 슬롯 변수 GameObject[] MyHeroSlot
소유한 캐릭터의 이미지와 연계할 변수 Image[] MyHeroSlotImage

Emtpy Object를 하나 생성해서..

이름을 ControlHero로 변경한 후에..

ControlHero 스크립트를 ControlHero 오브젝트와 연계시켜 줍니다.

이제 화면에 구현된 버튼과 이미지 등을 좀더 자세히 볼까요..

영웅관리 HeroBoard를 새로 만들었어요..

다른 아이콘들을 클릭할 수 없게..

투명하고 넓게 잡았구요..

 

실제로 버튼을 클릭할 수 있는 Pn_Board 가 있고..

상단에는 성장 / 스킬 / 장비 / 한계돌파 / 저장후 빠져나가기

로 구성되어 있고..

첫화면은 무조건 성장 화면으로 할 예정..

중간에는 선택한 캐릭터의 정보..

하단에는 플레이어가 소유한 캐릭터들이구요..

스크롤 뷰를 이용해서..

변경되는 캐릭터 수를 자동으로 표현할 수 있게 했는데..

현재 인벤토리를 15개로 제한했기 때문에..

슬롯도 15개 입니다..

 

아참 Pn_HeroInfo > Pnl_Ability 에는

캐릭터를 판매(방출)할 수 있는 버튼도 있어요..

 

인벤토리를 한정되어 있는데..

쪼렙 캐릭터만 보인다면 처리를 해야 하니까..

재판매(방출)이나 재료로 사용해야 하는데..

재료 소진은 추후에 구현 예정이라서..

시작하면 일단 Pn_HeroBoard / HeroBoard 이 사라져야 합니다..

영웅관리 버튼이 클릭되어야만 나타나게 되죠..

그리고.. 

미리 DB Text 파일에서 모든 캐릭터 정보를 불러와야 해요..

이제 영웅관리 버튼을 클릭하면...

HeroBoard 화면이 다시 활성화가 되고..

플레이어 정보와 소유한 캐릭터 정보를 불러 옵니다..

그리고..

소유한 캐릭터들을 화면에 나타나게 해야 겠죠..

 

여기서 부터 중요해요..

실제 오브젝트를 스크립트 오브젝트에 연계 시켜야 합니다..


모든 캐릭터 정보는 스크립트를 통해 AllHeroList에 대입 시켰고,

public void LoadHeroDatabase()

모든 캐릭터 이미지는 마우스를 이용해서 Project창에서 Inspector창으로,

HeroCardAll Hero Image에 연계시켜야 한다..

연계가 끝나면

Sprite[ ] AllHeroImage Index 순서에 맞게 Element 로 연게가 됩니다.

현재는 총 15개..

그리고..

플레이어가 소유하고 있는 캐릭터를 넣을 슬롯을 설정할 차례입니다.

 

Hierarchy에서 HeroSlot 오브젝트를 마우스를 이용해서  Inspector창으로,

GameObject [ ] MyHeroSlot 변수에 연계를 시켜주고..

 Image[ ] MyHeroSlotImage 변수에도 연계를 시켜줍니다.

연계가 완료되면 이렇게 수정됩니다..

이제는 스크립트를 통해서..

소요한 캐릭터 수만큼 하단 캐릭터 슬롯을 활성화 시키고..

저장된 순서대로 슬롯에 대입 시키도록 스크립트를 작성해 줍니다.

플레이(Play)를 시키면

화면에 아래와 같이 나타납니다.. 

잘 했다!! 별아재군.. ㅋㅋ

다음 단계는 플레이어가 소유한 캐릭터 슬롯을 클릭하면

중앙에 해당 캐릭터가 나타나야 합니다..

 

소유한 캐릭터의 슬롯을 클릭하면

실행된 클래스를 하나 생성합니다.

그리고..

소유한 캐릭터 버튼식 슬롯에 연계를 시켜 줍니다..

그리고 나서..

클릭시 OnClickHeroSlot() 클래스가 실행되게 변경하고..

각 슬롯마다 0부터 ~ 14번까지 String 값을 입력한다.

이미 저장된 7개의 캐릭터 중에서..

0번째를 클릭하면.. 

6번째를 클릭하면..

아래와 같이 출력됨을 확인!! ㅎㅎ

이제는 선택된 캐릭터를 Hero Image에 나타내고..

캐릭터의 능력치도 나타나게 해야 한다요..

클릭한 슬롯의 String 번호를 입력받아서..

MyHeroList에 있는 해당번호 캐릭터를 찾고..

해당 캐릭터의 Index 번호를 찾아서..

AllHeroImage 에서 해당 Index 번호의 이미지를 나타낸다..

 

또한 MyHeroList에 해당번호의 캐릭터의 각종 정보를 나타내어준다..

이렇게 나와요..

이제 선택된 캐릭터를 판매(방출)하는 기능과

캐릭터 레벨별로 정렬하는 기능을 구현해야 하는데..

일단, 여기까지 저장하고 갑니다...

.

 

728x90

댓글