본문 바로가기

Unreal/Udemy 강의

Unreal Engine 4 C++ The Ultimate Shooter Course Section 4-7

Spreading the Crosshairs

이제 크로스헤어의 확산을 적용해보자.

크로스헤어는 언리얼에서 HUD 블루프린트 클래스를 통해 적용했었다.

따라서 C++에서 선언한 크로스헤어 확산 변수에 접근하기 위해 Getter 함수를 만들어주자.

 

추가적으로 저번에 Tick 내에 함수를 호출해주는 것을 잊어서 이번에 작성해주었다.

 

먼저 HUD 블루프린트 클래스에서 Shooter Character에 대해 유효한지 체크를 해주자.

우리는 Shooter Character에 있는 getter 함수를 필요로 하므로, 유효여부 체크를 해주는 것이 좋다.

이러한 작업은 C++ 내에서 각 포인터 유효여부 체크 작업을 해줬던 것과 동일하다.

관련 변수를 먼저 만들어주고 이를 이용해 체크해주자.

 

이제 HUD 클래스내에서도 확산에 대한 변수를 만들어주자.

 

기존 크로스헤어를 그리던 함수 부분의 연결을 끊고,

추가적으로 여기서도 Shooter Character에 대해 유효 여부를 체크해주었다.

BeginPlay에서도 했지만, 이러한 작업은 습관을 들이면 좋다.

 

이제 Shooter Chracter를 통해서 Crosshair Spread Multiplier를 얻기 위한 Getter 함수를 가져오고,

이를 통해 해당 값을 설정해주자.

 

확산 정도를 더 높이기 위한 변수도 선언해주자.

기본 값은 우선 16으로 설정하였다.

 

이제 크로스헤어를 선택해주자.

기존 완성형 크로스헤어에서 bottom 부분만 선택해주자.

 

해당 크로스헤어의 좌표를 위한 변수를 선언해주자.

이는 기존에 작성했던 부분에서 Set 함수로 간단하게 저장할 수 있다.

 

기존 확산 변수와 확산 정도를 더하기 위한 변수를 곱하고, 이를 Y 값에 더하여 좌표를 지정해주자.

이러면 Bottom에 대한 크로스헤어가 움직임에 비례하여 아래쪽으로 확산되는 효과를 가질 수 있다.

더해주면 그만큼 아래로 이동하게 된다.

 

이번엔 위쪽 크로스헤어를 설정해보자.

여기서는 더해주는 것이 아니라 빼줌으로서 확산을 나타내게 된다.

빼주면 그만큼 위로 이동하게 된다.

 

이와 유사하게 좌우 크로스헤어에 대한 작업도 해주자.

좌우 크로스헤어를 선택하고 위아래와 같이 이번엔 X 좌표의 값을 더하거나 빼주면 된다.

 

이제 컴파일 해보면 다음과 같이 이동여부에 따라 크로스헤어가 확산되는 것을 볼 수 있다.