오늘의 TIL (Today I Learned)
- EquipManager 구조 및 기능:
- EquipManager는 현재 장착된 무기, 악세사리, 스킬을 각각 프로퍼티(EquippedWeapon, EquippedAccessory, EquippedSkill)로 관리.
- 장착 및 해제는 EquipWeapon, EquipAccessory, EquipSkill 메서드를 통해 수행.
- 장착 시 기존 장착 상태를 제거하고 새로운 상태로 갱신하며, 필요한 경우 효과(ApplyEffect 및 RemoveEffect)도 동적으로 반영.
- EquipManager는 플레이어의 현재 장착 상태를 항상 정확히 파악하는 중심 매니저.
- PlayerInventory 이벤트 활용:
- PlayerInventory에 정의된 OnSkillsChanged, OnWeaponsChanged, OnAccessoriesChanged 이벤트는 인벤토리 변경 시 자동 갱신을 트리거.
- 이벤트를 통해 SkillHandler와 같은 다른 시스템에서 동적으로 참조 가능.
- 중복 구현을 줄이고 실시간 데이터를 동기화하는 데 효과적.
- PlayerSkillHandler와 EquipManager 연동:
- PlayerSkillHandler는 EquipManager의 EquippedSkill 프로퍼티를 참조해 장착된 스킬을 동적으로 관리.
- EquipSkill 호출 시 이벤트를 통해 자동으로 갱신 가능.
- UpdateEquippedSkills를 사용해 초기화 및 실시간 업데이트가 가능하도록 구현.
- SkillEffectManager로 이펙트 처리:
- 스킬 이펙트는 EffectType(OnPlayer, Projectile, OnMapCenter)에 따라 다르게 동작.
- 예제:
- OnPlayer: 플레이어 주변 이펙트 생성.
- Projectile: 투사체 생성 및 이동.
- OnMapCenter: 맵 특정 위치에서 이펙트 및 범위 데미지 적용.
- 초기 테스트에서는 단순한 스프라이트로 확인, 이후 파티클 시스템으로 확장.
- 주석 처리된 로직 및 협업 고려:
- PlayerStat과 같은 외부 팀원 작업 중인 시스템과 연계되는 로직은 주석 처리.
- 주석 처리된 상태에서도 완성된 로직 구조를 유지해 나중에 바로 통합 가능하도록 준비.
- 무기와 악세사리의 관리:
- 무기와 악세사리 역시 EquipManager에서 EquippedWeapon, EquippedAccessory로 관리.
- 무기와 악세사리 효과를 적용하거나 제거하는 메서드(ApplyWeaponEffect, RemoveWeaponEffect, 등)를 통해 동작.
- 추가적인 UI 연동 없이 EquipManager에서 현재 상태를 항상 정확히 반영.
- PlayerSkillHandler에서 실시간 참조:
- PlayerSkillHandler는 EquipManager의 장착 상태를 기준으로 스킬을 동적으로 관리.
- 스킬 발동 시 EquipManager의 정보를 기반으로 실행, 업데이트를 보장.
- RegisterHit와 같은 스킬 조건 로직이 필요에 따라 자동 실행.
결론
- EquipManager는 플레이어 장비와 스킬의 중심 허브로, 동적 참조와 데이터 갱신을 효과적으로 관리.
- SkillEffectManager와 연계해 다양한 스킬 이펙트를 처리.
- 이벤트 기반 시스템(PlayerInventory, EquipManager)을 활용해 실시간 데이터 동기화 및 처리 간소화.
- 협업과 확장성을 고려해 주석 처리된 상태에서도 전체 로직이 유지되도록 설계.
앞으로의 과제
- UI 연동 및 상점 시스템 구현.
- PlayerStat과의 통합 테스트 진행.
- 스킬, 무기, 악세사리의 효과 시각화를 위한 파티클 시스템 도입.
'TIL(Today I Learned) > 오늘 무엇을 배웠을까' 카테고리의 다른 글
TIL(Today I Learned) - 53 (0) | 2024.12.04 |
---|---|
TIL(Today I Learned) - 52 (1) | 2024.12.03 |
TIL(Today I Learned) - 50 (0) | 2024.11.29 |
TIL(Today I Learned) - 49 (0) | 2024.11.28 |
TIL(Today I Learned) - 48 (0) | 2024.11.27 |