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

[별아재군/unity3d] "삼국지 영웅전" 덱설정 화면 첫번째 보유한 캐릭터 나타내기..

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

[별아재군/unity3d] "삼국지 영웅전" 덱설정 화면 첫번째 보유한 캐릭터 나타내기..

화면기능이 늘어나고..
스크립트가 길어지면서..
MenuManager 점점 더 복잡해지고 있다..
버그, 에러 찾아 수정하는데도 시간이 오래걸리고..
무언가 정리, 정돈이 필요해서 고민중이다..

 

일단. 화면기능을 각각의 오브젝트로 구현하기로 했다.

즉, MenuManager 스크립트에서 덱구성 스크립트 내용을 들어내고..

덱구성 오브젝트에 덱구성 스크립트를 만들어 붙인다..

 

이렇게 하면 MenuManager 오브젝트와 스크립트는

뒷배경 상하 움직임과

초기 튜토리얼 기능,

화면 플레이어 정보 업데이트 등

기능만 남게된다..

 

현재는 Shop 기능이 포함되어 있는데..

덱구성이 끝나면 따로 들어낼 예정..

 

벌써부터 다음 프로젝트가 머리속에 떠오린다..

"heroes of the Korea"

천제의 아들이 땅에 내려와 웅녀와 혼인후..

단군왕검을 낳고..

다시 하늘로 올라갔다가..

하늘 아래 백성들에게 너무 무관심하다하여..

다시 땅으로 잠시 내려옴..

이제 단군왕검과 함께 그동안 변화된 어지러운 세상을.. ㅋㅋ

 

그건 그것이고 우선 하던것부터.. ㅎㅎ

일단, MenuScene 으로 전환되면,

빈 오브젝트 들

MenuManager, ControlDeck 등이 각자 실행된다....

 

화변구성은 일단 이렇게..

특히 오늘은 아래 파란색 보드를 구현하기

게임을 하다보면 캐릭터는 쌓이고 모이기 때문에

타수의 캐릭터를 표현하기 위해서

하단에 아이콘을 생성하기 위해서

UI -> Scroll View 선택

그리고, 예하 Content에 버튼씩 슬롯을 추가한다.

버튼식 슬롯의 포멧을 만들고..

Ctrl + C, V를 해서 다수 복사..

오브젝트는 배열로 선언할 예정이니 이름은 동일하게

일정한 형식, 틀을 유지해야 함으로..

Content에 선택후 add componet 를 클릭해서..

대수의 HeroSlot를 정리한다.

 

또한 Content Size Fitter 도 add componet하여..

Vertical Fit를 조정해 준다.

마지막으로 Scroll View 에서

Scroll Rect에서 Horizontal를 해제하고 (세로로만 욺직이게)

Monement Type를 Clamped로 변경해서 스크롤 밖으로 나가지 않게 설정

자~ 이제부터 스크립트를 작성해서 연계 시켜보자..

일단 기본 Using

 

덱설정보드를 오브젝트로 선언하여 연계시키고

보유한 캐릭터를 하단에 표현하는데 필요한 선언을 추가한다.

시작하면 일단 덱설정 보드를 비활성시키고.

하단에 덱설정 아이콘을 클릭하면..

덱설정 보드를 활성화 시킨다.

 

********************* P.s. ********************* (수정 21.09.14)

 OnClickDeck()  클릭 할때마다

HeroDB 자료가 AllHeroList()에 누적되는 문제가 식별됨..

15개 -> 30개 -> 45개 ...

그래서 LoadHeroDatabase() 호출을

OnClickDeck()  에서 Start()으로 이동시켜..

한번만 LoadHeroDatabase()가 호출되도록 수정

*****************************************************************

 

 OnClickDeckExit()  은

종료[X]를 클릭하면 덱설정 보드는 다시 비활성화

LoadHeroDatabase() 클래스를 생성하여..

Hero Database 자료를 AllHeroList에 대입시킨다.

그리고, Load() 클래스를 통해서

저장된 플레이어 정보와, 보유한 캐릭터 정보를 불러온다.

오브젝트 변수에 실제 오브젝트를 연계 시키자..

AllHeroList는 스크립트를 통해 대입 시키고

All Hero Image에 캐릭터 이미지를 연계시켜야 하는데.

프로젝트 창에서 끌어다가

All Hero Image 이름 위에 놓으면..

알아서 대입되어 들어간다.

이번에는 하이어락키 창에서 

버튼형 HeroSlot 오브젝트를

My Hero Slot Image 변수와 연계시킨다.

My Hero Slot Image 이름 위에 놓으면..

알아서 대입되어 들어간다.

자~ 이제부터 스크립트 제대로 구현하기..

HyHeroList 라인수만큼 반복문을 돌리고..

 

HyHeroList 라인수 만큼 HyHeroSlot를 활성화 시킨다.

HyHeroList에 저장된 캐릭터의 인덱스(고유번호)를 추출하여

string형을 int형으로 전환하고..

해당 숫자 순서의 SlotImage에 AllHeroImage를 대입시키면..

버튼의 이미지가 변경된다..

올초에 구현을 완료했으나..

다시 할려니까. 알고리즘을 이해하는데 시간이 조금 걸렸다..

그래도 한번 해본 코딩이라서 

지난번보다는 수월했네..

 

다음은 캐랙터 슬롯 중에서 하나를 클릭하면

어떤 것이 선택됐는지 구현하기

 

먼저 캐릭터 슬롯이 선택되면

함수 호출될 수 있게 코딩하고

* 입력변수를 string형으로 할것인지 int형으로 할 것인지는 차후 알아서..

하이렉키창에 캐릭터슬롯 오브젝트를 전체 선택하고..

인스펙터창에 캐릭터 슬롯에 오브젝트를 Function에 추가해 주고

클릭되면 OnClickHeroSlot(string tabNum)에 실행되도록 선택

그리고, 선택된 슬롯이 각각 구분되도록
아래에 string형 숫자를 입력

* 입력변수를 string형으로 할것인지 int형으로 할 것인지는 차후 알아서..

모두 각각 다르게 입력

저장하고 실행하고 캐릭터 슬롯을 선택하면

선택된 tabNum 숫자가 출력..

.

다음에는 덱설정 카드5개와 버프 3개(공격, 방어, 생명력)를

오브젝트, 버튼으로 구현하고

스크립트를 연구해 보자..

728x90

댓글