PlayerAnimInstace의 헤더파일에서 WeaponTypeCount를 통해 애니메이션으로 사용할 것이므로 정의해놓는다.
Enum이 다음과 같이 되어 있다.
이를 기반으로한 IsWeaponMap에 False로 값을 넣어놓았다.
IsWeaponMap.Num()을 통해 빈 Enum을 참조하는 것을 방지한다.
IsWeaponMap[Type이름] == true를 통해, 해당하는 아이템을 소지하고 있는지 판별한다.
현재 다른 무기를 들고 있을 경우 무기를 집어넣는 애니메이션도 실행시킬 것이기 때문에 CurrentWeapon으로 판별한다.
여기서는 FTimerDelegate 를 이용해서 집어넣는 애니메이션 몽타주를 실행한 뒤, 꺼내는 애니메이션 몽타주를 실행하는 것을 보여주고 있다. 이를 위해서, float로 몽타주의 실행 시간을 가져와서 저장하여 연속으로 재생하고 있다.
다중으로 사용시에 Timer의 Handle을 중복해서 사용하지 않도록 이름을 지어줄 필요가 있다.
그리고 실행 후에 PlayerAnimInstance의 WeaponTypeCount를 바꾸어주고, CurrentWeapon을 변경해서 현재 장비하고 있는 무기를 표시해주고 있다.
아래의 조건문은 아무것도 장비하고 있지 않을 시에 무기를 장비하는 것으로 여기서는 무기를 넣을 필요가 없으므로 꺼내는 것만 재생하고 마찬가지로 WeaponTypeCount와 CurrentWeapon을 변경해주고 있다.