카테고리 없음

2025.06.11 10주차 화요일

mochoa 2025. 6. 10. 22:56

주요 구현 내용 요약

1. 장비 장착 시스템 (EquipManager) 구축

  • Equip(), EquipRight(), EquipLeft() 등으로 장비를 장착
  • 같은 아이템이 양손에 장착되지 않도록 중복 체크 해제 처리
  • 외형 반영: CharacterVisual.EquipWeaponRight(), EquipShieldLeft()
  • 스탯 반영: ApplyTotalStats()를 통해 공격력/방어력/체력 증가

2. 장비 해제 기능

  • Unequip(), UnequipAll()을 통해 장비 해제 가능
  • 해제 시 외형 및 UI 모두 초기화 처리

3. 스탯 적용

  • 장비 장착 시 보너스 스탯(ATK, DEF, HP) 계산 후 CharacterStats.UpdateStats()에 전달
  • 콘솔 로그로 최종 계산 결과 확인

4. 인벤토리 UI 연동

  • InventorySlot.MarkAsEquipped() → 장착 슬롯에 체크 표시 + 버튼 비활성화
  • InventorySlot.ResetVisual() → 해제 시 체크 제거 + 버튼 활성화
  • InventoryUI.FindSlotByItem()으로 특정 장비 슬롯 찾기

5. 세이브/로드 기능

  • SaveToData() → 현재 장착 무기/방패 ID 저장
  • LoadFromData() → 저장된 ID 기반으로 Resources.Load() 사용해 장비 불러오기
  • 불러온 후에도 자동으로 외형 및 스탯 반영

 

배운 점

  • 동기화 중요성: 장비 데이터는 외형, 스탯, UI에 모두 영향을 주므로 한쪽만 바뀌면 이상한 동작 발생
  • 데이터 저장/로드 시점이 중요함: LoadFromData() 후 바로 ApplyTotalStats()를 호출해야 상태 일관성 유지
  • UI 자동화를 위해 InventorySlot과 EquipManager 간의 참조 연결 구조 설계가 중요