본문 바로가기

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

TIL(Today I Learned) - 32

오늘은 Unity에서 인벤토리 시스템과 상호작용 로직을 심도 있게 이해하고 분석하는 시간을 가졌다. 특히 인벤토리 관리, 상호작용 시스템, UI 업데이트를 어떻게 효율적으로 구현할지에 대해 배웠다. 구체적으로 다음과 같은 내용을 다뤘다.


1. 인벤토리 시스템의 구조와 아이템 관리

  • ItemSlot: 아이템이 담기는 슬롯의 역할과 아이템 스택, 장비 상태, 아이템 추가/제거 방식을 배웠다. 특히, 빈 슬롯 찾기와 스택이 가능한지 확인한 후 아이템을 추가하는 로직을 이해하게 되었다.
  • UI 업데이트: 슬롯의 상태를 기반으로 UI를 업데이트하는 과정에서, SetClear 메서드를 사용해 각 슬롯의 상태를 명확하게 표현하는 점이 인상적이었다.
  • 아이템 선택과 버튼 활성화: 선택된 아이템의 유형에 따라 사용/장착/장착 해제/드롭 버튼을 활성화하는 로직을 분석함으로써, 동적 UI 변경의 중요성을 알게 되었다.

2. 상호작용 시스템

  • Raycast를 이용한 상호작용: 카메라 중앙에서 레이를 쏘아 상호작용 가능한 오브젝트를 감지하고, 해당 오브젝트의 프롬프트를 표시하는 로직을 이해했다. 오브젝트의 IInteractable 인터페이스를 통해 상호작용 메서드를 호출하는 구조를 배웠다.
  • 이벤트 기반 로직 처리: 플레이어가 데미지를 받거나, 인벤토리를 열 때 이벤트를 활용한 접근이 로직을 깔끔하게 만들어준다는 점을 알게 되었다.

3. 데미지 표시와 FadeAway 효과

  • DamageIndicator의 FadeAway 구현: 데미지를 받았을 때 화면에 플래시 효과를 주고, 해당 효과를 점진적으로 사라지게 만드는 코루틴 기반의 로직을 다시 확인했다. 점진적인 알파값 변경을 통해 부드러운 UI 효과를 주는 방법을 더 잘 이해하게 되었다.

느낀 점

  • 코드의 가독성확장성을 높이는 접근 방식이 중요하다는 것을 다시 느꼈다. 특히, 이벤트를 통해 로직을 구독하고, 각 기능을 독립적으로 관리하는 방식은 코드의 유지보수성을 높이는 데 큰 도움이 된다.
  • Unity에서의 UI 및 인벤토리 관리는 플레이어의 게임 경험에 큰 영향을 미치는 만큼, **사용자 경험(UX)**을 고려한 UI 업데이트가 필수적이다.

앞으로의 계획

  • 상태 관리이벤트 처리에 대해 더 깊이 공부하고, 실제 게임 플레이 시나리오에 맞게 여러 기능을 확장해보고 싶다.
  • 인터페이스 활용컴포넌트 구조화를 통해 보다 유연한 시스템을 설계할 수 있도록 여러 샘플 프로젝트를 분석해보는 것도 좋은 접근이 될 것 같다.

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

TIL(Today I Learned) - 34  (0) 2024.11.01
TIL(Today I Learned) - 33  (0) 2024.10.31
TIL(Today I Learned) - 31  (0) 2024.10.29
TIL(Today I Learned) - 30  (0) 2024.10.28
TIL(Today I Learned) - 29  (0) 2024.10.25