BattleStar - 함선 조선소 시스템
- 100 powerun
- 2024년 11월 27일
- 2분 분량
최종 수정일: 2월 4일
2. 함선 조선소
1. 함선 조선소 메인 UI 코드
우선 도움말 창이 2개나 존재하고 후에 추가될 수도 있는 상황 때문에 foreach를 통해 모든 도움말 창을 닫습니다.

SCYDetail의 helpBtnTrigger라는 int값의 index가 infoMenu라 하는데, 이는 아래의 스크립트에서 지금 어떤 도움말 창이 나타나야 하는지 관리하고 있기 때문입니다.
쉽게 풀이하자면 helpBtnTrigger는 함선의 디테일 창이 열렸을 때 값이 바뀌게 되는데, 그 값으로 알맞은 도움말 창을 열어주는 코드 입니다.

2. 함선 디테일 창 UI 코드

텍스트들을 하나하나 만드는 것이 아닌 List화를 시켜서 index로 관리하는데, 그 이유는 여러 개의 변수를 나열하여 코드를 지저분하게 만드는 것보다는 간결하게 정리하고 후에 추가될 변수들을 쉽게 다루기 위해 하나의 이름으로 배열화시켜 만들었습니다.


맨 위의 두 bool값은 특정 UI가 열렸는지 열리지 않았는지 확인하는 값입니다.
아래에는 창을 껐다가 켰을 때 마지막으로 선택한 함선의 정보가 유지되는 것을 방지하고자 초기화하는 함수이고, 그 아래에는 시작 시 처음부터 켜져 있으면 안 되는 창들을 꺼주는 초기 off값을 설정해 주는 초기 동작입니다.

왼쪽에 나열된 함선을 클릭하여 정보를 출력하게 만들면 보조 창을 전부 닫습니다. 클릭 시 함선의 메인 정보를 먼저 출력하기 위함입니다.
그 후 함선이 선택되지 않았을 때 기본적으로 출력하던 디폴트값들을 비활성화하고 선택한 함선의 고유 스프라이트, 함선이 가지고 있는 고유 스킬 스프라이트, 그리고 함선이 선택되지 않았을 때 기본적으로 비활성화 되어있던 스킬 디테일, 함선 디테일 버튼을 활성화해 줍니다.

그 뒤 List화 시켜놓은 여러 텍스트의 정보를 알맞은 인덱스 값에 넣어 선택한 함선의 정보를 출력하게 해줍니다. 함급은 때에 따라 다르게 출력하는데 가지고 있는 enum값이 영어로 되어있기 때문에 한글로 치환시켜 줍니다. 이는 함선의 크기 또한 마찬가지입니다.


다음은 각 무장의 수를 표시하는데, 무장 가능한 특정 급의 무장이 0이라면 장착할 수 없다는 것을 알려주기 위해 붉은 글씨로 바꿔줍니다.

아래가 해당 예시로 위의 함선은 대형, 중형, 소형 무장이 전부 있지만, 아래의 함선은 대형 슬롯이 없어 대형 슬롯의 글씨가 붉은색인 걸 알 수 있습니다.


그 이외의 불러오는 함선 정보들 입니다.

아래는 스킬 디테일 창의 정보가 변경되는 곳 입니다.

아래에 띄워진 창이 바로 스킬 창이고 어떤 함선을 선택했느냐에 따라 함선이 가지고 있는 스킬의 정보가 바뀝니다. 노란색은 포인트, 붉은색은 단점, 푸른색은 장점을 뜻합니다.


해당 텍스트에 색을 넣기 위해서는 TMPro의 색상 변경 기능을 이용했으며, 기본적으로 제공하는 색이 있으나, 원하는 색이 없으면 6 자리의 색 코드를 넣어 색을 입힐 수 있습니다.

함선의 디테일 정보 초기화는 해당 페이지에서 띄워주던 함선의 정보를 초기화시키는 함수입니다. 함선과 함선의 스킬 스프라이트를 끄고, 디폴트 텍스트를 띄우고 여러 버튼을 비활성화하고 정보들을 초기화시킵니다.



아래의 코드는 스킬 디테일 창과 함선 디테일 창을 On/Off 하는 버튼 함수입니다.
함선 디테일 창을 보면 위에서 도움말 UI를 설명할 때 나왔던 helpBtnTrigger가 나오는데, 이곳에서 index가 바뀌고, 해당 숫자를 함선 조선소 메인 UI가 받아와 띄우는 도움말 창을 변경하는 방식입니다.

Comments