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

[별아재군/unity2d] "삼국지 영웅전" 영웅관리 화면 두번째 판매하고 정렬하기..

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

[별아재군/unity2d] "삼국지 영웅전" 영웅관리 화면 두번째 판매하고 정렬하기..

 

캐릭터를 열심히 모았지만 인벤토리는 한정되고 있고..

불필요한 캐릭터가 많으면 정작 갖고싶은 캐릭터를 인벤토리에 넣지 못하기 때문에..

인벤토리를 정리해야하는데.. 

방법은 두가지..

판매해서 없애던가 자료카드로 없애던가..

일단 선택된 캐릭터를 판매(방출)하는 기능를 구현하려고 한다..

 

판매 버튼을 클릭하면..

먼저 선택된 캐릭터가 있는지 확인을 해야 하고.. (String tabNum으로)

다음은 선택된 캐릭터가 덱설정에 포함이 되었는지 확인을 해야 하고.. (AttackSeq = "8", 백수)

판매가 완료됨을 동시에 MyHeroList에서 삭제되고 정리가 되어야 한다.

 

먼저,  몇가지 스크립트를 수정해야 한다.

HeroSlot를 클릭했을때 어떤 캐릭터를 선택했는지 저장을 해 둬야 한다.

그리고, HeroList를 클릭할때..

잔상?을 제거하기 위해..

먼저 하나를 빼고 모두 비활성화한 후에..

보유한 캐릭터 수만큰 슬롯을 활성화 한다.

HeroInfoSlot를 클릭하면..

선택된 캐릭터가 사라지도록 클래스를 추가로 만들고..

 

SellHero 버튼을 클릭할 경우

먼저 HeroInfoSlot에 선택된 캐릭터가 있는지 확인하고..

선택된 캐릭터가 있다하여도

공격대 1, 2, 3에 선택된 캐릭터는 없는지 확인한다.

그런데 ASeq3에서 문제가 생겨서..

방법을 int형으로 변경해서 조건문을 작성했다..

마지막으로 List형에서 선택한 캐릭터를 삭제하는 것을 구현하고..

        MyHeroList.Remove(MyHeroList[number]);

 

삭제된 정보를 저장하고..

저장했던 정보를 다시 불러와서..

 

선택된 캐릭터를 제거하고..

하단에 HeroList를 다시 나타낸다..

 

중간에 있을 것을 삭제해도..

앞으로 당겨지고...

맨뒤쪽 잔상도 발생하지 않는 것을 확인..

추가로..

판매한 캐릭터의 등급에 따라서..

차등해서 판매가격을 환원한다..

마지막으로...

저장할 때.. 등급에 따라.. 정렬이 되도록 구현하기...

 

코딩에 대해 이틀 고민했는데..

이미 List형에 Sort() 기능이 내장되어 있었다..

표현하는 형식만 조금 더 연구해서 적용해 보니.. 바로.. 성공

이렇게 해서...

영웅관리(HeroManage)는 완료...

728x90

댓글