ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스파르타 최종프로젝트 34일차
    게임 개발기록 2024. 7. 30. 23:59

    1. 영웅저장기능 추가

    영웅저장을 하다보니까 디버그들이 갑자기 쏟아졌다. 

    맵에서도 오류가 나오고 유닛들에서도 오류가 나오고 등등등 

     

    전부 다 무찔러주고 슬롯들의 UI 자막의 디테일 부분을 수정 해줬다. 

     

    구매 안 한 애는 ???로 나오게 만듦. 그리고 계산을 조금 잘 못 해줘서 1렙 일 때 처음 공격력이 아니라 2렙 데미지로 적용이 되어서 알맞게 수정을 해줬다. Unit, 플레이어, 영웅들 다 따로 살짝시 수정을 해줘야 알맞게 실행이 되었다.

     

    나중에 자막 표시 하는 디테일도 조금 추가 해줘야한다. 999k 이렇게 나올 때 K는 좀 작게 나오게, Rich?라는 함수를 사용 하면 된다고 하셨다. 

     

    그리고 스크립트 필드에 바로 변수를 초기화 해주면 좋지 않은 이유를 찾았다. 

    뭔가 본능적으로 필드에 변수를 바로 초기화 하는 것에 대해서 거부감이 있었는데, public으로 선언 된 변수가 초기화가 됐을 경우에 에디터에 값이 저장이 된다. 

     

    무슨 소리냐 하면은 한 번 초기화를 했을 때 그 때의 값이 필드에서는 변경 되지 않는다. 

    에디터로 수정을 해주거나 해야 한다. 0으로 해둬도 다시 2로 바뀌고 그런다. 

     

    아무튼 다양한 디버그들을 해결 했다. 

     

    그 다음에 영웅목록들이 저장 되는 것을 추가 해준다.

    나는 class 자체를 저장 시킬 거라 hero라는 클래스에 sprite 이런 것을 넣지 않았다. 

     

    그래서 다른 곳에서 히어로의 sprite가 필요한 경우가 있을 때 사용하려고 hero에 Func를 등록 해두고 Hero 슬롯이 이 Func에 등록 하는 방식으로 Sprite를 넘기게끔 했었다.

    이런 느낌으로 클래스를 넘겨서 sprtie를 넘기게끔 했었다.

     

    굳이 이 방법을 선택 한 것에는 이미지를 많이 캐씽 안 하려는 의도도 있지만, 원정대라는 기능이 있다. 

     

    이렇게 설정 해두면 여기 있는 얘들도 Data만 저장 시키면 같은 참조형이 되지 않을까 하고 Data만 돌아다니게 해본 거다.

    그런데 같은 참조가 안 되어서 어차피 다시 heroInven에 있는 것들로 다시 집어 넣어줘야 했었다. 

     

    그래서 Sprite를 어떻게 넘겨줄까 할까 고민 했었다.

    Data를 가지고 슬롯을 생성 해낼 때 이 슬롯에서 Resouces로 Sprite를 가져왔다. 

    그래서 Manager클래스에 Dictionary를 만들었다. 

     

    이런 식으로 만들고, 슬롯이 생성 되고 초기화가 끝난 다음에 이 Dictionary에 본인을 저장 시키는 방식으로 했다. 

    키값에는 hero들마다 번호를 저장 시켜뒀는데 그걸 키값으로 활용 했다.

     

    그런데 이렇게 하면 비슷한 유형의 클래스 List를 2개 만들게 되긴 해서 조금 불편 하긴 하다. 

    heroData, HeroSlotUI 둘 다 heroData가 있다. 아무튼 진득한 고민은 나중에 추가 해서 더 하기로 하고,

     

    이렇게 만들어 두니까 Sprite 가져오는 것도 할 수 있을 뿐 아니라, 매번 선택 한 슬롯이 지금 넣으려는 슬롯과 같은지를 확인 해야 하는 작업이 필요 할 때 굳이 반복문을 사용 할 필요가 없어졌다. 

     

    아무튼 이렇게 만들어서 Sprite를 한 번만 당겨오고 계속 사용하게 만들었고, 저장기능도 추가를 해줬다. 

    원정대에 저장 된 영웅들의 번호를 저장 하고, 로드 할 때 저장 된 번호를 키값에 넣어서 원정대에 다시 넣게 해줬다.

     

    이렇게까지 해서 영웅기능도 저장을 추가 하였다.

     

    이제 저장 할 기능은 거의 끝났다고 볼 수 있다. 뭐 사소한 게 있을 수 있겠지만, 

    이제 기능만 추가 해서 더 만들면 되고 앞으로 남은 기능은 아이템 강화제작과, x100강화, 10연뽑(튜터님이 100연뽑은 하지 말라고 하셨다. ㅋㅋㅋ) 만 하면 기능 구현도 마무리가 된다. 

     

    이 남은 두 가지의 기능만 추가를 하면 게임의 기능구현은 완성이다. 너무 늦은 것 같기는 하다. 

     

    남은 기능을 마무리 하고 앞으로 남은 기간동안 폴리싱 작업만 하면 된다. 우선 유닛들 디자인? 유닛들의 숫자 등 그리고 디자인이라던지, 게임 완성이 얼마 안 남았듯이 캠프 또한 얼마 남지 않았다. ㅎㅎ.. 캠프 끝까지 더 힘내보자. 그동안 고생 많았다. 나 자신

     

     

    내일 목표 : 기초기능 마무리, 폴리싱 작업 시작

     

     

     

Designed by Tistory.