본문 바로가기

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

TIL(Today I Learned) - 48

오늘의 TIL (Today I Learned)

  1. 스킬 시스템 구조 개선
    • SkillManagerPlayerSkill 간 역할을 명확히 분리하여, SkillManager는 스킬 실행을 총괄하고 PlayerSkill은 스킬 실행 로직을 담당하도록 설계.
    • TriggerSkill을 통해 스킬 타입(Active, Buff, Passive)에 따른 적절한 메서드를 호출.
  2. 패시브 스킬 동작 방식
    • 전투 시작 시 자동으로 발동하며, 쿨다운이 끝나면 다시 발동.
    • buffDuration 동안 효과가 유지되며, 종료 시 원래 상태로 복구.
    • isBuffActive를 활용하여 중복 발동을 방지.
  3. 유연한 스킬 관리
    • List<SkillSO>를 활용하여 스킬 데이터(ScriptableObject) 기반으로 동작.
    • cooldownTimers와 isBuffActive 배열로 각각의 스킬 상태를 관리.
  4. 버프와 패시브 효과 구현
    • IncreasePlayerAttack과 ResetPlayerAttack 메서드를 사용해 공격력 증가 및 복구를 처리.
    • 코루틴을 활용해 일정 시간 동안 효과를 유지하고 종료.
  5. 적 타격 처리
    • Physics.OverlapSphere를 사용해 범위 내 적 객체를 탐지.
    • IDamageable 인터페이스를 통해 적 객체에 데미지 처리 가능.
  6. 개선된 코드 관리
    • 기존 ExecutePassiveSkill 메서드가 제거된 문제를 확인하고, PlayerSkill.TriggerPassiveSkill로 연결하여 문제 해결.
    • 코드 수정 시 양방향 참조(Manager ↔ Component) 간 일관성을 유지하는 것이 중요함을 인식.

느낀 점

  • 스킬 시스템에서 역할 분리가 잘 되어 있으면, 확장성과 유지보수성이 크게 향상됨을 배움.
  • 패시브 스킬처럼 자동 발동 로직을 구현할 때 상태 관리(isBuffActive 등)가 중요하다는 것을 깨달음.
  • 디버깅 과정에서 기존 코드와의 연결성을 꼼꼼히 확인하는 습관이 필요함.

다음으로 진행해야 할 추가 작업:

  • 마나 소모(ConsumeMana) 및 확인(HasEnoughMana) 로직 구체화.
  • 버프/패시브 효과를 다양한 상태(공격력, 방어력, 이동속도 등)로 확장.
  • IDamageable 인터페이스 구현 및 테스트.

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

TIL(Today I Learned) - 50  (0) 2024.11.29
TIL(Today I Learned) - 49  (0) 2024.11.28
TIL(Today I Learned) - 47  (0) 2024.11.27
TIL(Today I Learned) - 46  (1) 2024.11.25
TIL(Today I Learned) - 45  (0) 2024.11.22