이제 타겟된 액터에게 회전을하고 타겟을 바라보면서 움직이는걸 구현해 본다.
TargetLockOn이라는 함수를 만들고 이 함수에 만들었던 함수를 호출시켜준다.
BeginPlay를 상속받고 BeginPlay 에서 자기자신의 액터와 컨트롤러를 받아와 주었다.
SetControllerRotation함수를 만들어주며 LockOn이 되었을때 컨트롤러의 IgnoreLookInput와 폰의 컨트롤러를 false로 만들게되면 마우스로 움직일때 컨트롤러가 움직이지 않게 된다.
위젯또한 함수와 시켜 만들어주고 방금만든 SetControllerRotation과 CreateWidgetTargetMark를 LockOn에서 호출시켜 주게 만들어 주었다.
UpdateControllerRotation함수를 만들어 주었고 여기에서 컨트롤러를 회전시켜 타겟에 고정시켜주었다.
타겟 벡터와 나 자신의 벡터를 빼고 정규화해주면 타겟으로부터 방향을 구할 수 있다.
그리고 방향을 통해 회전을 구해주며 적절한 수치를 이용하여 타겟과 멀어지면 TargetOff를 시키고
LockOn범위 내에있으면서 타겟과 가까워지게 되면 컨트롤러의 pitch값을 회전시켜 몰입감을 더 줄수 있게 된다.
이것을 Interp함수를 통해 값을 구하고 컨트롤러를 세팅해준다.
마지막으로 TargetOff함수에 추가적인 부분을 수정하였다.
UpdateControllerRotation는 Tick에서 실행시켜주고 컴파일 후 실행해보면 타겟고정이 잘되며 가까이 가면 컨트롤러의 Pitch 도한 회전을 하게 되는걸 볼 수 있다.
'언리얼 > 개발일지' 카테고리의 다른 글
언리얼5 공부 및 개발일지 11일차 타겟 락 온 시스템 구현 ② (0) | 2023.10.04 |
---|---|
언리얼5 공부 및 개발일지 10일차 타겟 락 온 시스템 구현 ① (0) | 2023.10.04 |
언리얼5 공부 및 개발일지 9일차 적 구현 (0) | 2023.10.02 |
언리얼5 공부 및 개발일지 8일차 모션워핑 및 카메라 랙 추가 (0) | 2023.10.02 |
언리얼5 공부 및 개발일지 7일차 어빌리티 시스템 능력 구현 (0) | 2023.09.30 |