본문 바로가기

TIL(Today I Learned)/오늘 무엇을 배웠을까

TIL(Today I Learned) - 61

오늘의 TIL (Today I Learned)

문제: 합성 시스템의 개선

문제 정의:

  • 게임에서 아이템 합성 시, 보유한 아이템 중 1개는 남겨두고 나머지를 합성에 사용해야 한다. 예를 들어, 5개가 있다면 4개는 합성에 사용되고, 1개는 남아 있어야 한다.

해결 과정:

  • PerformBatchFusion 메서드에서 아이템의 StackCount를 확인하고, 남겨야 할 1개를 고려하여 최대 합성 횟수를 계산하였다. 이를 통해 실제 합성 가능한 개수를 정확하게 추출할 수 있었다.
  • 기존의 Fuse 메서드는 변경하지 않고 그대로 유지하며, 필요한 조건만 추가하여 사용하였다. 기존에 잘 동작하던 기능을 그대로 유지하는 것이 중요하다는 교훈을 얻었다.

문제: 마지막 등급 아이템 처리

문제 정의:

  • 마지막 등급의 아이템은 합성할 수 없도록 해야 하며, 그에 따라 합성 버튼과 이동 화살표를 비활성화해야 한다.

해결 과정:

  • GetNextEquipmentData 메서드를 사용하여, 다음 등급 아이템이 존재하는지 확인하였다. 만약 null이라면 해당 아이템은 마지막 등급 아이템으로, 합성 버튼과 화살표를 비활성화 처리하였다.
  • 화살표가 마지막 아이템을 넘어가지 않도록 조건을 추가하여, 사용자가 더 이상 이동할 수 없도록 했다.

문제: 인벤토리에 없는 아이템의 색상 처리

문제 정의:

  • 사용자가 합성할 아이템이 인벤토리에 없는 경우, 그 아이템의 아이콘을 검은색으로 표시해야 한다.

해결 과정:

  • 아이템의 StackCount를 확인하여, 해당 아이템이 인벤토리에 존재하는지 여부를 판단하였다. 아이템이 존재하지 않으면, 아이콘을 흐리게 표시하여 사용자가 해당 아이템을 사용할 수 없음을 명확하게 알 수 있도록 했다.

핵심 메서드 재사용

문제 정의:

  • 합성 시스템에서 동일한 로직을 여러 곳에서 재사용할 필요가 있었다.

해결 과정:

  • GetNextEquipmentData 메서드는 중복 코드를 줄이는 데 매우 유용했다. 이 메서드는 두 개의 UI에서 공통적으로 사용되며, 같은 기능을 여러 번 작성하지 않고, 재사용할 수 있도록 설계했다.
  • 기존 메서드를 재활용함으로써 코드의 중복을 줄이고 유지보수성을 높일 수 있었다.

오늘의 교훈

  1. 기존 기능을 변경하지 말 것:
    • 기존에 잘 동작하던 기능은 변경하지 않고 그대로 사용하는 것이 중요하다. Fuse 메서드는 그대로 유지하면서 필요한 조건만 추가하여 문제를 해결했다.
  2. 아이템 상태를 명확히 관리할 것:
    • 아이템이 존재하는지, 합성이 가능한지 여부를 명확하게 구분하여 UI에 반영하는 것이 중요하다. 아이템의 상태에 따라 UI에서 적절한 색상과 상태를 표시하는 것이 사용자 경험에 긍정적인 영향을 미친다.
  3. 코드 재사용:
    • 핵심 메서드를 잘 설계하고 재사용하는 것이 중요하다. GetNextEquipmentData 메서드는 두 군데에서 재사용되었고, 이를 통해 코드 중복을 줄였다.
  4. 조건을 명확히 고려할 것:
    • 합성 시스템에서 StackCount - 1을 고려하는 것처럼, 아이템을 다룰 때는 각 상황에 맞는 조건을 명확히 고려해야 한다.

'TIL(Today I Learned) > 오늘 무엇을 배웠을까' 카테고리의 다른 글

TIL(Today I Learned) - 63  (0) 2024.12.18
TIL(Today I Learned) - 62  (2) 2024.12.17
TIL(Today I Learned) - 60  (1) 2024.12.13
TIL(Today I Learned) - 59  (0) 2024.12.12
TIL(Today I Learned) - 58  (0) 2024.12.11