[TIL] 2025-05-16 알고리즘 문제, 무기 충돌 로직 구현, 패키징 문제, 팀원 일정 관리
2025-05-16 TIL
알고리즘 문제
이번 문제는 DFS를 사용해서 모든 노드를 탐색하고, 거리를 구해야한다고 생각했는데 잘못된 접근이었습니다.
1번 노드를 기준으로 모든 노드까지의 최단 거리를 구하고, 그 중 가장 큰 거리를 찾아 같은 값을 가진 노드의 개수를 세는 문제였습니다.
이번 문제는 이해와 분석을 잘못했기 때문에 접근을 잘못한 것 같고, 다음에는 이 부분을 좀 신경써야할 것 같습니다.
이외에 알고리즘에 대한 부분에서 그래프를 표현하는 부분에 대해 복습이 필요할 것 같으며, BFS로 노드의 거리를 구하는 것은 크게 어렵지 않았습니다.
[프로그래머스][C++] 가장 먼 노드
최종 프로젝트
무기 충돌 로직 구현
공격 애니메이션 재생 중 무기와 적이 오버랩 됐을 때 데미지가 들어가도록 구현했습니다.
무기에서 무기의 공격력을 가지기 위해 float
변수를 하나 가지도록 했습니다.
무기에서는 충돌을 위한 박스 컴포넌트를 가지도록 했고, 컴포넌트와 오버랩된 경우 데미지를 주도록 구현했습니다.
해당 오버랩 이벤트는 플레이어 캐릭터에서 무기를 관리하는 컴포넌트에서 가집니다.
해당 컴포넌트에서 오버랩 이벤트를 가지는 이유는 무기 공격력 이외에 플레이어 캐릭터에서 유물이라는 개념으로 공격력을 향상시켜주는게 있을때, 다른 클래스의 의존성을 최대한 줄이기 위함입니다.
공격 애니메이션 재생시 AnimNotifyState
에 의해 Begin
에서 무기의 콜리전을 켜고, End
에서 무기의 콜리전을 끕니다.
중복된 오버랩을 방지하기 위해서 TArray
를 사용하여 오버랩된 액터를 저장했습니다.
오버랩 시 해당 배열에 들어있는 값을 확인하고, 배열에 같은 값이 존재할 경우 데미지를 가하지 못하도록 했습니다.
오늘 구현한 시스템은 기존에 알고있던 정보를 응용하는 형식이어서 좋은 경험이 되는 작업이었습니다.
구조에 대한 부분은 고민이 좀 있었지만 너무 어렵게 생각하지 않도록 했고, 프로토타이핑 기준으로 구현은 잘 마친 것 같습니다.
패키징 문제
패키징에서 데이터 테이블이 포함되지 않는 문제가 있었습니다.
해당 문제는 데이터 테이블에 접근하려고 할 때 nullptr
이 발생하여 알 수 있었습니다.
임시로 레벨 블루프린트에 데이터 테이블을 참조하여 패키징에 포함되도록 해주었습니다.
후에 좀 더 정확한 방법을 찾아보았는데, Primary Asset Label
을 사용하여 라벨을 주는 방법을 사용해보았습니다.
Primary Asset Label
을 사용하면서 관련 정보를 습득하기 위해 다음 링크의 문서를 살펴보았습니다.
팀원 일정 관리
다른 팀원의 마일스톤에서 작업에 대한 내용이 굉장히 애매하게 적힌 부분이 있었습니다.
서로 이해하고있는 부분이 같은지, 작업에 대해서 서로 생각이 같은지 알기 위해서 정확하게 작성해야할 필요가 있다는 피드백을 받았습니다.
진행 척도를 알기 어렵게 너무 포괄적으로 작성하는 경우도 좋지 않다고합니다.
물론 충분하게 작성하는 팀원도 있지만, 피드백을 받은 계기로 부족한 팀원에 대해서 소통을 통해서 작성을 도우고자 합니다.
댓글남기기