ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 내일배움캠프 83일차 TIL - 최종 프로젝트 개발 마무리 3
    TIL/Unity 2024. 8. 13. 23:30

     

    [한 줄 요약]

    최종 빌드에 들어가기 전 여러 필요한 작업들을 진행하였다.


    [학습 내용]

    최종 프로젝트 개발 마무리


    빌드 전 수정

    고양이 호텔 패널

    아직 고양이 호텔 기능이 준비되지 않았지만, 접근까지는 가능하게 구현이 되어있다. 그래서 이를 접근하지 못하도록 막고 준비중 알림 패널을 띄우도록 구현하였다.

     

    힐 스킬 사용 불가 버그

    자동 타겟팅을 만들면서 타겟이 없을 때 스킬을 누르면 스킬 사용 대신 타겟 지정이 일어나도록 구현하였다. 그러면서 타겟을 지정하지 않고 사용하는 힐 스킬이 사용할 수 없는 이슈가 발생하였다. 이를 해결하기 위해 타겟이 필요 없는 버프류의 스킬은 자동 타겟팅이 일어나지 않도록 예외로 처리해주었다.

     

    힐 스킬 조정

    기존의 힐 스킬은 체력을 전부 회복시켜주었다. 개발 당시에는 밸런스를 따지지 않았기 때문인데, 빌드가 가까워진 만큼 이를 수정할 필요가 있었다. 그래서 30%의 체력만 회복시키도록 로직을 구성하였다.

     

    볼륨 설정 값 저장

    개발이 한창일 땐 몰랐는데, 소리값이 기기에 따라 클 수도, 작을 수도 있었다. 그런데 설정값이 저장되지 않아 매번 게임을 실행할 때마다 다시 조절해주어야 했다. 그래서 이를 개선하고자 저장 시에 볼륨 설정값도 같이 저장되도록 변경하였다.

    볼륨 설정값이 저장된 모습

     

    로딩화면 추가

    기존에는 마을씬을 로드할 때만 로딩화면이 작동하였다. 이것을 던전 씬과 캐치존 씬으로 넘어갈 때에도 동작하도록 구현하였다. 대신 씬 자체에서 처리하는 로직들이 너무 많기에, 로딩 시스템에서 처리하지 않고 씬이 작업을 다 처리할 동안 로딩화면을 띄워놓는 식으로 진행하였다.


    !! 문제 발생 !!

     

    * 내용

    코루틴 내에서 비동기 작업을 처리하기 위해 asnyc/await를 사용하려 하였으나, 반복기 작업인 코루틴에서는 사용할 수 없다고 오류가 발생하였다.

     

    * 탐색

    당장 해결법이 생각나는 것이 없어, Task에 yield return을 사용해보았다. 빨간 밑줄이 뜨지 않아 그대로 실행시켜봤는데, 완료를 기다리지 않고 그냥 넘어가서 실패하였다.

    방법을 찾다가 Task의 isCompleted를 찾게 되었고, someMethod().isCompleted와 같은 방식으로 사용하여 이를 WaitUntil로 처리하려고 시도해보았다. 그런데 조건 검사마다 someMethod가 다시 동작하는 결과를 낳았다.

     

    * 해결

    이를 해결하기 위해 Task를 따로 변수에 저장하고, isCompleted만 받아와서 검사하였다. 그랬더니 깔끔하게 동작하였다.

    코드



    [회고]

    버그를 하나 잡으면 다른 하나가 나오는 기적을 보았다. 조금 서둘러서 진행을 해야 변수가 발생하더라도 일정 진행이 가능할 거 같다.