top of page

BattleStar - 승무원 시스템(장착 중)

  • 작성자 사진: 100 powerun
    100 powerun
  • 2024년 11월 27일
  • 3분 분량

최종 수정일: 2월 27일

6. 함선 정보 - 승무원 시스템


1. 승무원 정보 UI 코드



아래의 코드는 승무원 슬롯을 불러오는 코드로 실행 직후 일어나는 에러를 방지하기 위해 동작할 때 마다 실행하게 만들었습니다.


우선 현재 탑승 중인 함선의 정보를 불러오고 현재 배치 가능한 승무원의 수를 불러와 만약 슬롯 칸이 적다면 현재 함선에 맞는 수만큼 슬롯을 활성화해 주고

만약 배치할 수 있는 수가 이전의 함선보다 수가 적다면 슬롯들을 없애주고 없앤 슬롯에 배치되어 있던 승무원들을 다시 대기 상태로 바꿔줍니다.


아래의 함수는 승무원의 정보를 불러오는 함수로 배치 중인 모든 승무원의 스프라이트, 정보, 이름을 가져와 표시해 줍니다. 해당 정보는 슬롯마다 적용되며 어떤 승무원이 배치되어 있는지 한 번에 확인할 수 있게 도와줍니다.

해당 사진이 위의 두 함수를 거친 후로 현재 함선은 총 배치 가능한 슬롯 7자리에 현재 배치 중인 승무원은 1명임을 알 수 있습니다.


아래는 대기 중인 승무원의 정보를 불러오고 슬롯과 해당 슬롯에 대기 중인 승무원의 정보를 할당시켜주는 함수입니다. 이 함수는 위의 승무원 슬롯 중 아무 슬롯을 누를 경우 실행하게 됩니다. 새롭게 만든 슬롯을 변수화 시켜 이용하는데, 이렇게 변형된 변수는 할당한 슬롯의 정보를 바꾸는데 편리하게 만들어줍니다.


아래의 함수는 처음 화면에서 승무원 슬롯을 눌렀을 때 대기중인 승무원의 정보창을 가져오거나, 대기중인 승무원 창을 끌 때 이용됩니다.


아래의 함수는 승무원 선택 창을 누른 후 대기 중인 승무원을 클릭했을 시 실행되는 함수로 승무원 변경 확인 창을 띄우거나, 만약 공석을 누른 후 승무원을 선택했다면 승무원이 바로 배치되게 만들어 주는 함수입니다.

예시 GIF


아래의 코드는 승무원 변경 확인 창이 열렸을 때 실행되는 함수로 처음부터 공석을 선택한 경우가 아니라면 아래의 함수로 넘어오게 됩니다. 그래도 혹시나 있을 의도하지 않은 동작에 대비해 공석일 경우 승무원이 바로 바뀌게 안전장치를 걸어놓았습니다.


우선 두 승무원의 사진을 화면에 띄우고 바꾸고자 하는 승무원과 배치된 승무원이 누구인지 알게 명확하게 알려주어 비교하는 두 승무원 중 어느 승무원이 지금 플레이에 적합한지 알게 해줍니다.

해당 페이지


아래의 함수가 승무원 변경 확인 창 이후 승무원을 변경한다면 실행되는 함수로 양쪽 승무원의 배치 상태를 바꾼 뒤 원래 승무원이 배치되어 있었던 자리에 해당 승무원이 그대로 배치되게 만들었습니다.


이 아래가 공석을 눌렀을 때 실행되는 곳으로 배치하고자 하는 승무원의 상태만 바꾼 뒤

이후의 진행은 위의 원래 승무원과 교체하는 것과 똑같이 흘러갑니다.



2. 승무원 정보 슬롯 UI 코드


승무원 UI 디폴트

대기중인 승무원 슬롯




  • 배치중인 승무원 슬롯



시작 시 배경이 무작위로 결정됩니다. 배경은 총 8개의 스프라이트가 존재하고 최초 생성 시에만 무작위로 결정되고 그 이후에는 없어진 뒤 다시 생성되기 전까지는 무작위 결과가 나오지 않습니다.


SetCrew는 승무원 정보 스크립트에 inCrew를 설정해주는 버튼 리스너 입니다.


총 8개의 배경이 있는 것을 확인할 수 있습니다.

결과(승무원 정보 코드 설명할 때의 사진과 동일합니다)




  • 대기 중인 승무원 슬롯


대기중인 승무원 예시




3. 승무원 스탯 정보 UI 코드



승무원 능력치 정보는 아래의 붉은 박스로 표시한 부분을 담당합니다.


우선 총 2개의 텍스트 List가 존재하는데, 위에서 보듯이 총 2 부분의 모든 텍스트를 담당할 뿐만 아니라 다른 능력치의 비교로 인해 하나로 모으기보다는 2개로 나누는 것이 좋을 것 같아 나눴습니다.


승무원 정보 메인 화면에는 능력치 합산 정보가 존재하기 때문에 이를 넣을 변수가 필요하여 하나씩 만들었습니다.


totalStat은 현재 함선에 배치중인 모든 승무원의 스탯을 합산한 뒤 출력해주는 함수로, 승무원에 변동이 있을 때 마다 갱신을 시켜주며 스탯의 상황을 보여줍니다.

아래는 합산한 스탯 정보를 텍스트에 적용시키는 내용입니다.


아래가 데이터 리셋으로 이전에 출력된 수가 그대로 남아 새롭게 창을 열었을 때 이전 정보와 합산되는 일을 방지하기 위해 변수에 넣은 모든 수를 0으로 초기화 시키는 기능을 수행합니다.


아래의 코드는 승무원 교체 창에서 성능을 비교해주는 함수입니다.


이후부터는 스탯 마다 색상을 바꿔주는 함수들 입니다. inCrew와 outCrew를 비교했을 때 더 높으면 푸른색, 낮으면 붉은색으로 색을 바꿔주는 역할을 합니다.


아래는 스탯 비교 데이터를 초기화 시키는 함수로 혹여나 비정상적인 경로나 이전의 데이터와 합산되었을 때를 대비하는 안전장치 입니다.


Comentários


bottom of page