※ 해당 기록은 Unreal 5.5.4 버전을 기준으로 작성되었습니다.
여러 무기의 기반이 되는 WeaponBase 클래스를 구성하고, 각 무기들의 공격에 관련한 정보를 담은 DataAsset을 만들었다.

데이터 에셋을 다음과 같이 구현했다. 사실 csv에 모든 정보를 담아두고 불러올까도 생각했지만 생각보다 양이 그렇게 많지 않고 데이터 에셋을 처음 사용하는 거라 적절하게 분배할 방법을 알지 못했다. FSkillInfo라는 구조체를 선언하여, 그 내부에 공격의 데미지, 사거리, 몽타주, 몽타주 재생 배율, CC기와 그 시간의 정보를 담고 이 구조체로 공격을 구현했다. magazine은 샷건과 나뭇가지를 위한 변수다. 샷건은 강력하고, 원거리라는 이점 대신에 공격 가능 횟수를 제한할 예정이다. 나뭇가지는 일정 횟수 이상 공격하면 나뭇가지가 파괴되도록 구현할 계획이다. 그래서 이런식으로 소모값이 없는 무기는 magazine = -1로 두어, 감소처리 등을 적용하지 않을 예정이다.

모든 무기의 부모 클래스인 WeaponBase클래스이다. 어짜피 인스턴스를 만들 일이 없을 것 같아 순수 가상 클래스로 구현할까도 생각했지만, 무기 장착에서 탐지하는 액터를 WeaponBase로 캐스팅해서 판단하고 있어서 이는 반려되었다. 각 무기에서 공격을 구현하고, Data에 담긴 정보로 공격을 직접적으로 수행할 것이다.
WeaponBase를 뿌리로 하여 여러 무기를 구현할 차례다. 시작은 기본 공격 하나만 있는 샷건부터다.