본문 바로가기

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

TIL(Today I Learned) - 64

오늘의 TIL (Today I Learned)

  1. 인벤토리에 없는 스킬 표시 문제 해결:
    • 처음에는 인벤토리에 없는 스킬이 UI에 표시되지 않던 문제를 해결하려고 했다. 이 문제는 기본적으로 인벤토리에 없는 스킬은 아이콘이 보이지 않거나, UI에 표시되지 않는 상황이었음.
    • 이 문제를 해결하기 위해 **SkillInventorySlot**에서 인벤토리에 없는 스킬도 UI에 표시되게 하기 위한 로직을 추가했다.
    • **SkillInventorySlot**에서 소유한 스킬소유하지 않은 스킬을 구분하여 UI에서 보여줄 수 있도록 했다. 소유하지 않은 스킬은 아이콘을 어둡게 처리하고, "No Inventory" 텍스트를 활성화해 사용자가 해당 스킬을 소유하지 않음을 인식할 수 있도록 했다.
    • 이때 아이콘의 알파값을 0으로 조정하는 방식으로 아이콘을 반투명하게 처리하며, 클릭할 수 없게 만들어 UI에서 인벤토리에 없는 스킬을 표시할 수 있었다.
  2. UI 갱신 및 데이터 상태 변경 문제 해결:
    • SkillInventorySlot에서 인벤토리에 없는 스킬을 UI에 표시할 때, 클릭 이벤트를 관리하는 부분에서 버튼 동작이 문제였다. 버튼을 클릭했을 때 소유한 스킬만 동작하게 해야 했는데, 소유하지 않은 스킬에도 클릭 리스너가 등록되면서 문제가 발생했다.
    • 이 문제는 **onClick.RemoveAllListeners()**와 **onClick.AddListener()**를 사용하여 클릭 이벤트를 동적으로 할당하는 방식으로 해결했다. 이렇게 하여 소유한 스킬소유하지 않은 스킬에 대해 클릭 리스너를 제대로 설정할 수 있었다.
  3. UI 상태 업데이트에 대한 관리:
    • 인벤토리스킬 장착 UI상호작용을 통해 상태를 업데이트해야 했고, 이를 위해 **SkillEquipSlotManager**와 **SkillInventorySlot**의 UI 상태를 잘 관리해야 했다.
    • 각 UI 요소가 변화할 때, 인벤토리 상태를 반영하여 UI를 업데이트하는 방식으로 문제를 해결했다. 이 과정에서 스킬 아이콘, 버튼 색상, 슬롯 상태 등을 동적으로 처리하여 사용자가 쉽게 인식할 수 있도록 했다.
  4. UI에서의 상태 유지 및 동기화:
    • UI가 다른 씬이나 UI 화면을 넘어갔다가 돌아올 때에도 인벤토리 상태와 장착된 스킬 상태를 유지하려는 요구가 있었다.
    • 이 문제는 UI 요소의 상태를 씬 간 동기화하려는 방식으로 접근했지만, 문제를 다시 돌아오면 장착된 스킬UI에서 사라지는 문제가 발생했다. 이를 해결하기 위해 UI를 새로 갱신할 때 장착된 스킬의 상태를 다시 반영하는 로직을 추가해주었다.

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

TIL(Today I Learned) - 66  (0) 2024.12.23
TIL(Today I Learned) - 65  (0) 2024.12.20
TIL(Today I Learned) - 63  (0) 2024.12.18
TIL(Today I Learned) - 62  (2) 2024.12.17
TIL(Today I Learned) - 61  (0) 2024.12.16