[TIL] 30일차 - 인벤토리 만들기

김유원·2024년 2월 2일
0

📝 24.02.02

오늘도 강의에 모든 시간을 투자했다. 생각보다 강의를 따라가는 것만 해도 많은 시간이 필요해서 주말에 좀 더 추가적인 시간 투자가 필요할 것 같다.

오늘은 그동안 내가 가장 힘들어했던, 그리고 가장 어려워했던 인벤토리를 만드는 법을 배웠다.

가장 처음 인벤토리를 만들었던 '이후는 이전보다'에서는 Scriptable Object에 대한 이해도가 전혀 없는 상태로 그저 다른 사람의 블로그를 따라서 만들었었다. 하지만 이번에는 Scriptable Object에 대한 이해도도 생겼고, Enum을 적절히 사용하는 방법도 배워서 더 머리에 확실히 들어왔다.

특히

void UpdateUI()
{
    for(int i = 0; i < slots.Length; i++)
    {
        if (slots[i].item != null)
            uiSlots[i].Set(slots[i]);
        else
            uiSlots[i].Clear();
    }
}

이 UpdateUI() 기능을 따로 구현한 것이 매우 유용하다는 생각이 들었다. 인벤토리를 구현할 때 늘 이를 재정렬하는 것의 시점이나 방법을 찾기가 힘들었는데, 이렇게

public void Set(ItemSlot slot)
{
    curSlot = slot;
    icon.gameObject.SetActive(true);
    icon.sprite = slot.item.icon;
    quantityText.text = slot.quantity > 1 ? slot.quantity.ToString() : string.Empty;

    if(outline != null)
    {
        outline.enabled = equipped;
    }
}

ItemSlotUI.cs에서 Set() 함수를 활용해 손쉽게 인벤토리를 새로고침할 수 있어 편의성이 매우 높아진 코드라고 생각했다. 리뉴얼하는 '이후는 이전보다'에도 이를 잘 활용해야겠다는 생각이 들었다.

이외에도 낮밤의 빛 변화를 함수로 적용하는 등의 기능도 배웠지만, 가장 자주 사용하게 될 기능은 인벤토리 기능이라 생각해서 인벤토리를 잘 숙지하는 것이 중요할 것 같다.

profile
개발 공부 블로그

0개의 댓글

관련 채용 정보