👤 성준모 (Weapon)
⚠️ 문제
- 발사 기능을 구현할 때, 라인 트레이스(Line Trace) 방식을 선택하여 피격된 액터에 데미지를 주는 기능을 구현하는 데 시간이 많이 걸렸음
- 델리게이트를 처음 사용하면서, 기능들을 연결하는 과정에서 큰 어려움을 겪었음
🔍 원인
- 라인 트레이스 방식은 단순하지만, 피격된 액터에 데미지를 주는 로직을 구현하는 데에 많은 시간이 소요됨
- 라인 트레이스로 레이저처럼 쏘는 방식은 직접적인 물리적 상호작용 없이 추적하므로, 피격된 대상에게 데미지를 주는 코드가 복잡함
- 델리게이트는 이벤트를 처리하는 콜백 메서드를 연결하는 방식으로, 이를 처음 사용하여 연결하는 데에 어려움이 있었음
🚧 조치
- 라인 트레이스를 활용한 발사 기능 구현
- 라인 트레이스를 통해 총알의 궤적을 추적하고, 맞은 액터를 판별하여 데미지 처리하는 부분에 피격된 액터에 데미지 주는 로직 추가
- 라인 트레이스 결과에 따라 맞은 액터를 타격하고 데미지를 주는 코드 작성
- 델리게이트 활용
- 델리게이트를 사용하여 발사 기능과 피격된 액터에 데미지를 주는 함수를 연결
- 델리게이트 사용법을 학습하며, 델리게이트 이벤트에 맞게 콜백을 연결해 해결
- 예시:
OnHit()
같은 함수에서 델리게이트를 호출하여 피격된 액터에 데미지를 주는 방식 적용
💡 결과
- 라인 트레이스를 통한 발사 기능이 성공적으로 구현되었으며, 피격된 액터에 데미지를 주는 기능도 정상적으로 동작함
- 델리게이트를 이해하고 활용하면서 각 기능들을 적절히 연결하여 발사 기능을 완성함
- 발사와 관련된 기능이 간단하면서도 탄도학적 계산까지 필요한 경우, 발사체 구현 방식으로 확장할 수 있는 기반 마련함