Crosshair 구현
Widget BluePrint

조준점 같은 UI를 구현하려면 일반 블루프린트가 아니라 위젯 블루프린트를 사용한다. ( 생성 카테고리도 UI에 따로 있음)

WBP_Crosshair내부에는 Canvas가 있는데 미술할 때 사용하는 그 캔버스라고 이해하면 편하다.
이곳에서 HP, 조준선 등을 만들고 Viewport에 추가하여 UI를 구현하는것이다.
팔레트에서 Image를 가져와 캔버스위에 올려주고 앵커로 원하는 위치에 올리고 앵커의 x,y위치값을 0으로 하면 이미지의 원점이 앵커의 위치가 된다.
Appearance의 Brush에서 사용할 이미지를 적용시키고 슬롯의 Alignment로 이미지를 가운데로 맞추고 Size To Content를 체크하여 사이즈를 조정해준다.
Zorder는 캔버스의 레이어수치이다. (높을수록 앞으로 낮을수록 뒤로, 뒤로 밀려나면 앞의 UI에 가려진다)


조종하는 캐릭터를 바꿀수 있는 게임들은 UI의 틀은 같으나 각자 들고 있는 스킬이 다르기에 Controller에서 틀을 BP_Player같은 캐릭터BP에서 해당 스킬에 대한 이미지를 가지고 있다가 바꿔주는 형식이다.


게임이 시작할 때 PlayerController에서 WBP_Crosshair를 생성, Viewport에 추가하고 숨겨놓고
필요할 때만 Crosshair를 화면에 표시하기 위해 인터페이스를 생성하여 관리해준다.

클래스 세팅에서 새로만든 BP_PlayerControllerInterface를 추가하여 Show/Hide Crosshair 이벤트를 사용한다.

플레이어에서 줌을 했을 때 Crosshair를 보이게 하기 위해 정방향 Timeline이 다끝났을때 Switch로 Show Crosshair를 호출
줌을 풀 때 Hide Crosshair를 호출한다.
카메라의 움직임을 자연스럽게 하기위해 Camera Lag Speed의 값을 Timeline을 통해 변경한다.

Zoom In상태에서 스킬을 해제하면 Zoom Out이 안되는 문제는 스킬이 Deactivate 될때 Zoom Out을 추가하면 해결된다.
'언리얼 BluePrint 정리' 카테고리의 다른 글
| 07/07 학습 정리 ( Behavior Tree, BlackBoard ) (0) | 2023.07.09 |
|---|---|
| 07/05 학습 정리 ( HP_Bar 구현 ) (0) | 2023.07.05 |
| 07/03 학습 정리 ( Timeline, Zoom 구현 ) (0) | 2023.07.03 |
| 06/30 학습 정리 ( Apply Radial Damage, Memory Pool ) (0) | 2023.07.02 |
| 06/29 학습 정리 ( FireBall 스킬 구현) (0) | 2023.06.29 |