오늘의 TIL (Today I Learned)
- 스킬 시스템 구조 개선
- SkillManager와 PlayerSkill 간 역할을 명확히 분리하여, SkillManager는 스킬 실행을 총괄하고 PlayerSkill은 스킬 실행 로직을 담당하도록 설계.
- TriggerSkill을 통해 스킬 타입(Active, Buff, Passive)에 따른 적절한 메서드를 호출.
- 패시브 스킬 동작 방식
- 전투 시작 시 자동으로 발동하며, 쿨다운이 끝나면 다시 발동.
- buffDuration 동안 효과가 유지되며, 종료 시 원래 상태로 복구.
- isBuffActive를 활용하여 중복 발동을 방지.
- 유연한 스킬 관리
- List<SkillSO>를 활용하여 스킬 데이터(ScriptableObject) 기반으로 동작.
- cooldownTimers와 isBuffActive 배열로 각각의 스킬 상태를 관리.
- 버프와 패시브 효과 구현
- IncreasePlayerAttack과 ResetPlayerAttack 메서드를 사용해 공격력 증가 및 복구를 처리.
- 코루틴을 활용해 일정 시간 동안 효과를 유지하고 종료.
- 적 타격 처리
- Physics.OverlapSphere를 사용해 범위 내 적 객체를 탐지.
- IDamageable 인터페이스를 통해 적 객체에 데미지 처리 가능.
- 개선된 코드 관리
- 기존 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 |