총을 쐈을때의 Spread 효과를 구현하기 위해 변수를 몇가지 추가하였따.

Untitled

그러고 총을 쐈을때마다 Spread 값을 증가시켜줬는데 ,여기서 FTimerHandle 을 썼다.

FTimerHandle 은 타이머를 설정하는건데 , 해당 타이머를 통해서 n 초동안의 할 동작 그리고 n초 이후의 호출할 함수를 설정할 수 있다.

Untitled

Timer 가 나중에 호출할 함수는 UFUNCTION 매크로를 사용해야 호출을 할 수 있다고 한다.

Untitled

그리고 쐈을때 설정할 함수 그리고 일정 시간이 지나서 동작할 함수를 각각 구현해줬다. 쐈을때 호출할 함수에서 보면 SetTimer 을 한다.

Untitled

그리고 FireWeapon 끝자락에 함수를 호출해줬다.

그러고 Spread 값을 항상 계산했던 함수에서 마찬가지로 총을 쐈을때의 Spread 값 또한 계산해서 더해줬다.

Untitled

결과

GIF 2023-03-07 오전 4-21-39.gif

추가로.. 문제가 있다고 강의에서 말씀하셨다,

GIF 2023-03-07 오전 4-23-22.gif

바로 화면을 50 만큼 올렸었는데 , 해당 올린 값 때문에 에이밍을 해서 카메라가 확대를 한다면 , 올렸던 좌표를 기준으로 확대되지 않고 , 중앙 기준으로 확대대기 때문에 원하는 곳을 조준을 할 수가 없다.

강의에서는 그냥 더했던 50의 값을 빼고 , 마찬가지로 RayCast , Fire 지점에서 우리가 Y 값을 더해줬던걸 없앴다. 하지만 난 이미 위가 익숙해서 이를 굳이 빼지 않고 , 에이밍 상태를 개선을 해보려 한다.