ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스파르타 최종프로젝트 22일차
    스파르타 게임 개발 2024. 7. 18. 15:24

    1.코드 많이 수정 하기

    저장 기능을 구현 하기에 앞서 원활한 작업을 하기 위해선 구조를 변경 해야 하는 부분이 있었다. 

    강화로직과 유닛을 생성 하는 것들인데, 현재 강화는 공격력에 계속 더하는 형식인데 이러한 방식은 별로 좋지 않은 것 같다. 

     

    공격력은 그냥 냅두고 강화 레벨에 따른 공격력 계산을 하는 것으로 바꿔주고 유닛 생성 하는 것도 바꿔야 할 것 같다. 

    구매를 한 유닛은 저장이 되어야 하는데 어떻게 할지 생각을 해야 한다. 

     

    지금은 시작과 동시에 유닛List를 생성 해내는데 나중에 모든 List 만드는 게 아니라 구매를 하면 다음 유닛이 열리는 형식으로 바꿀 것이다. 

     

    그리고 구매를 한 유닛이면 유닛의 Lv을 적용 해야 하는데 

     

    저장 기능을 구현 하기 전에 정해야 할 것들이 여러 개 있었다. 

     

    먼저 데이터를 double로 관리 할 것인지 BigInteger로 관리 할 것인지인데, BigInteger 같은 경우 사용하려고 보니까 번거로운 부분이 조금 있었다. 

     

    먼저 한 번에 넣을 수 있는 값이 20글자 였다. 그래서 큰 수를 넣고자 해도 못 넣었다. 그리고 소수점 계산을 하려면 번거로운 작업을 해줘야 했다. 그렇지만 편한 부분도 확실히 있었다. 정수이다 보니까 999K 이런 식으로 문자열을 바꾸는 게 쉬웠다. 그런데 double이 계산이 빠르다. 이런 소리를 본 적이 있어서 double을 사용할까 고민 했었다. 

     

    그리고 double은 320글자라고 한 번에 20글자 이상 넣을 수 있다고 생각 했었다. 

    그런데 일단 아니었다. BigInteger와 같이 20글자만 넣을 수 있었고, 소수점 계산이 편하다는 장점이 있었다. 

     

    결론은 BigInteger를 사용 하게 될 것 같은데, 소수점 계산이야 번거롭긴 하더라도 하면 되고, 한 번에 20글자를 넣는 게 안 되는 것이지 BigInteger에 Bigintger를 더하는 건 가능 했다. 

    그리고 double을 할 경우에 문자열로 바꾸는 것을 다시 만들어야 했는데 엄청난 장점을 아직 깨닫지 못 해서 BigInteger를 사용 하기로 했다. 

     

    중요한 건 협업에선 대부분 double로 관리를 한다는 것이다. 

    그래서 많이 고민이 됐었다. 하지만 더 고민 하기엔 시간이 아깝고 바꾸기에도 시간이 아깝고 일단 하던 대로 하자였다. 

     

    일단 지금까지 저장 기능을 해본 경험이 없어서 그동안에 기능들을 만들 때 저장부분에 대해서는 생각을 안 해고 기능들을 만들었던 지라 저장기능을 공부하고 구현 하고자 할 때 구조들을 많이 바꿔야 하겠다고 생각이 들었다. 

     

    일단 Json으로 저장을 해야 하는데 Json으로 저장이 되는 Data를 이용 하여서 User의 환경이 똑같이 되게 해야 한다. 

    일단 그러기 위해서는 대부분의 구조를 수정 해줘야 했다. 

     

     

     

    2. 강화 구조 개선하기

    현재 강화를 하게 되면 Damge라는 변수 자체가 오르게 했었다. 그리고 다른 스텟들도 마찬가지다. 

    그리고 여러가지 이어진 것들도 마찬가지였는데 이 부분을 수정 하고 싶었다. 

     

    결론적으로는 Lv만 저장 하면 공격력을 표시하는 UI, 스텟 등등이 적용 되게 수정을 했다. 

     

    Lv만 불러와서 바꿔주면 적용이 되게끔 바꿔봤다. 그런데 UI 다시 만드는 것도 마음 잡기가 쉽지 않은데 아예 싹 바꾸려니까 쉽지가 않았다. 

    다음엔 생각 잘 하고 만들자. 이번 프로젝트 하면서 경험이 많이 생긴 것 같긴 하다. 

     

    강화를 하게 되면 Lv만 오르고 스텟을 계산 할 때 Lv을 이용해 데미지를 계산 하는 방식이다. 

    나중에 아이템이나 버프 등등이 생길 경우에 그 부분도 추가 하게끔 하면 될 것 같다. 

     

    강화 구조를 바꾼 뒤에 Json을 적용 해봤다. 

    저장 불러오기 자체는 유니티가 만들어준 기능이 있기에 매우 쉬웠다. 

     

    그런데 파일을 못 찾는다. 

    저장은 됐는데 파일을 못 찾는다. 분명 강의에서 알려준대로 Application.persistentDataPath;을 사용 했는데 파일을 찾지 못한다. 

     

    일단 그래서 오늘은 마무리 하고 내일 왜 못 찾는지 해결하고 강화가 제대로 저장이 됐는지 확인을 해봐야 할 것 같다. 

    제대로 적용이 되는지도,

     

    그 다음에 스킬도 저장이 되게 하고, 다른 것들도 저장이 되게 해서 저장기능을 완성 해야겠다. 

    사실 Json강의를 보고 너무 쉽게 느껴져서 오전이면 저장기능을 완성 할 줄 알았다. 하지만 내가 만든 코드들로 Json을 하려니 쉽지가 않았다. 리팩토링을 하게 될 줄은 몰랐어.

     

    리팩토링도 코드를 줄이는 게 아니라 구조 바꾸는 거라 마음이 많이 꺾였었다.

    아무튼 내일 저장기능을 완성 하고 제발 100연뽑 기능 만들기 시작하자. 

     

     

    내일목표 : 저장기능 완성, 영웅기능, 상점기능 시작

     

     

Designed by Tistory.