사격하기위한 위치를 표시하는 CrossHair를 HUD를 통하여 화면에 그린다.
이때 플레이어의 다양한 움직임의 조건에 의하여 화면에 그려지는 크로스헤어는 벌어지거나 화면의 중심으로 모이는 움직임을 구현.
게임모드에 사용될 HUD 클래스를 생성 이때 크로스헤어는 동적으로(벌어지는 모션)움직여야 하기때문에 한장의 텍스처가아닌 크로스헤어의 중심, 상, 하, 좌, 우 5개의 변수로 나누고 텍스처를 적용 한다.
HUD 클래스에 구조체를 만들어 각각 Center, Left, Right, Top, Bottom 멤버 변수로 생성
HUD 클래스는 Tick이아닌 DrawHUD를 통하여 매프레임 화면에 텍스처를 그린다.
화면에 텍스처를 그릴때에 주의해야할 점은 텍스처의 좌표체계는 UV 좌측상단이 0,0 우측하단이 1,1의 좌표를 가지게 되므로 화면상에 정확히 중심점을 기준으로 그리기 위해서는 추가적인 계산을 해야 한다.
화면상에 텍스처를 그릴때 가장 먼저 구해야 할것은 화면의 사이즈이며 중심이 필요할 경우 중심의 위치도 저장하고 사용한다.
텍스처를 정확히 중심에 그릴때 텍스처의 크기와 위치를 바로 잡아주는 계산도 필요하다.
크로스헤어의 벌어짐에 관한 변수의 값은 매프레임 업데이트 되므로 적절한 함수 내에서 필요한 값들을 설정
현재 프로젝트에서는 캐릭터가가지고 있는 컴포넌트에서 캐릭터의 행동과 관련된 변수들을 관리 하고 있기때문에 해당 클래스에서 계산을 실행하고 값을 전달 하는 방식으로 업데이트.
플레이어의 행동과 관련된 변수들과 조건문을 사용하고 FMath::FInterpTo() 함수를 사용하여 이전의 값과 현재의 값을 보간시켜 동적으로 값이 변경 되도록 사용.
'공부 > Unreal Engine 5' 카테고리의 다른 글
[언리얼5] 콜리전 커스텀 채널 생성하기(C++) (3) | 2024.03.08 |
---|---|
[언리얼5] 개인 프로젝트 라인트레이스, 카메라설정 메모 (0) | 2024.03.08 |
[언리얼5] 탄피 시뮬레이트피직스 & 타이머 (0) | 2024.03.05 |
[언리얼5] 멀티플레이 사격 테스트(NetMulticast) (0) | 2024.03.04 |
[언리얼5] NetUpdateFrequency (0) | 2024.03.01 |
댓글