Improving Weapon Fire Code
내용이 늘어난 Weapon Fire 부분의 코드들을 정리해보자.
먼저 전투 상태에 대한 enum class와 이에대한 변수 및 초기화를 해주자.
첫 번쨰로 FireButtonPressed() 함수를 리팩토링 해주자.
함수 뜻 그대로 발사 버튼을 눌렀으면 발사 버튼 여부를 true로 바꿔주고, 바로 총 발사에 해당하는 FireWeapon() 함수를 호출해야 할 것이다.
그리고 기존 FireWeapon() 함수의 내용을 나눠 함수로 만들어주었다.
이제 FireWeapon() 함수를 위 3가지 함수를 토대로 리팩토링 해주자.
먼저 ESC_Unoccupied 상태가 아니라면 바로 종료시켜야할 것이다.
그 이후 총알이 있는 지 여부를 체크후, 위 3종 함수를 호출시킨다.
총알이 발사된 상태이기에 총알 갯수를 감소시키고, 사격 시작을 알리는 StartFireTimer() 함수 또한 호출해준다.
마지막에 총 발사시 크로스헤어 반동 표현을 위한 StartCrosshairBulletFire() 함수도 호출해주었다.
StartFireTimer() 함수에서는 현재 사격 중인 상태이므로 CombatState를 바꿔주자.
그리고 기존의 SetTimer() 함수만 남겨주면 된다.
마지막으로 AutoFireReset() 함수이다.
여기선 총을 다시 발사하게 되므로 CaombatState를 또 다시 바꿔준다.
그리고 총알이 존재하며 발사 버튼이 눌렸다면 다시 FireWeapon() 함수를 호출해준다.
만약 총알이 없다면 재장전을 해야하는데 이는 추후 구현할 내용이기에 현재는 빈칸이다.
'Unreal > Udemy 강의' 카테고리의 다른 글
Unreal Engine 4 C++ The Ultimate Shooter Course Section 7-9 (0) | 2024.08.30 |
---|---|
Unreal Engine 4 C++ The Ultimate Shooter Course Section 7-8 (0) | 2024.08.29 |
Unreal Engine 4 C++ The Ultimate Shooter Course Section 7-6 (0) | 2024.08.29 |
Unreal Engine 4 C++ The Ultimate Shooter Course Section 7-5 (0) | 2024.08.29 |
Unreal Engine 4 C++ The Ultimate Shooter Course Section 7-4 (0) | 2024.08.29 |