TIL - 24.04.29 최종 프로젝트

Amberjack·2024년 4월 29일
0

TIL

목록 보기
82/83
post-thumbnail

24.04.29 최종 프로젝트

오늘은 2차 유저 피드백으로 들어온 내용들을 수정했다.

아이템의 밸런스

열심히 조정한다고 아이템 밸런스를 조정을 했더니, 이번에는 게임의 난이도가 너무 쉬워졌다고 한다. 일단 에픽 무기가 너무 강하고, 근접 무기의 흡혈이 너무 사기라는 말이 많았다. 그 외에도 게임 중반만 가도 골드가 너무 남아돈다거나, 아이템의 외형만으로 장신구와 무기를 구분하기 힘들어 하시는 건지 장신구 아이템의 강화가 안된다는 피드백을 많이 받았다.

에픽 무기의 조정

무기 등급별 등장 확률 조정

현재 내가 코드 작성 시 실수를 해서 유니크 무기가 원래 생각했던 확률보다 더 많이 등장하고 있었다. 따라서 해당 코드를 수정하고, 높은 등급의 무기 아이템이 뜨는 확률을 조정했다.

에픽 무기 소지 가능한 아이템 개수

각 무기별 에픽 무기의 소지 가능 개수를 1개로 조정하였다.
안그래도 에픽 무기가 많아지면 게임의 성능이 저하되는 문제도 있었는데, 한번에 문제를 해결할 수 있어 일석이조다.

키 값으로 무기의 ID값을, Value값으로 현재 소지 중인지 여부를 확인하기 위핸 bool을 가지는 Dictionary인 hasEpicWeaponFlag를 만들어서, 에픽 무기를 만드는 데 성공하면, hasEpicWeaponFlag에 추가한 후, 이후에 같은 에픽 무기를 만들 때, hasEpicWeaponFlag에 해당 키가 이미 존재할 경우 만들지 못하도록 수정했다.

이미 해당 무기군의 에픽 무기를 만들었다면 합치기 버튼을 Disable시키고, 다음 등급에도 "이미 소지 중"이라는 텍스트가 뜨도록 변경했다.

아이템 밸런스

이동 속도 관련 아이템

현재 이동 속도 관련 아이템이 너무 많아 아이템 무게로 인한 디메리트인 이동 속도 감소가 크게 와닿지 않는다면 피드백이 있었다. 따라서 아이템에 있는 이동 속도들을 없애고, 이동 속도가 붙은 아이템의 경우, 등급을 상향 조정하거나, 이동 속도 외에는 별 다른 능력치가 없도록 조정을 했다.

근접 무기의 사기성

근접 무기의 흡혈이 너무 사기라는 평가가 많았다. 무엇보다, 도끼와 칼의 무기별 차이점이 크게 없다는 피드백도 받았었다. 따라서 칼의 경우, 유니크 등급 이상이 되어야 피흡을 할 수 있도록 조정을 했고, 도끼의 경우 데미지를 너프 먹였다.

아이템을 들고 Alt + Tab을 하면 스프라이트가 계속해서 남아 있는 문제.

해당 문제는 1차 유저 피드백 때 어떤 분이 스크린샷으로 남겨주셨으나, 정확히 어떤 조건에서 문제가 발생하는 지 확인을 할 수 없었다. 그러나, 오늘 어떤 분이 게임을 플레이하시는 것을 보다보니, Alt + Tab을 하면 문제가 되는 것을 확인할 수 있었다.

원인

원인은 아이템을 들고 있으면, 아이템이 Item Gird를 벗어나 그 외부에 존재하게 된다.

이 때, Alt + Tab을 하게 되면 유니티 Application이 멈추게 되면서 해당 아이템 오브젝트가 원래 자리를 찾아가지 못하고 Item Grid 외부에 존재하게 되어 계속해서 사라지지 않고 남아 있게 되던 것이었다.

해결 방법(OnApplicationPause)

해결 방법은, 유니티 Application이 멈추게 되는 것을 감지하여, Application이 Pause되면 들고 있던 아이템을 다시 원래 자리로 돌아가도록 설정해주어 해결할 수 있었다.

void OnApplicationPause(bool pause)
{
    if (pause && transform.parent.GetComponent<ItemGrid>() == null)
    {
        inventoryController.LeftMouseButtonPut();
        image.raycastTarget = true;
    }
}

유니티의 API 중에 현재 유니티가 Pause 상태인지 여부를 체크하는 메서드가 있었다. 이를 통해 만약 현재 유니티가 Pause 상태이고, 해당 아이템이 Item Grid 밖에 있는 상태라면, 원래 자리로 돌아가도록 설정했다.

0개의 댓글