AI 시선 확인하기
전 강의에서 AI 시선 문제와, AI의 시야에서 벗어나게 되면 더 이상 AI가 쫓아오지 못하도록 해보자.
AI의 시야를 체크하기 위해서는 LineOfSightTo 함수를 사용하게 된다.
해당 함수를 통해 AI가 다른 액터(플레이어)를 볼 수 있는 지 없는 지에 대해 체크하고 이를 bool 타입으로 반환하게 된다.
만약 보이는 대상(플레이어)이 있다면 해당 대상에 포커스를하고 해당 대상을 향해 움직이게 되고,
만약 보이는 대상(플레이어)이 없다면 포커스를 지우고 움직임 또한 멈추게 하자.
포커스를 지우는 방법은 ClearFocus() 함수를 통해 할 수 있다.
여기에 매개변수로 포커스 우선순위에 대한 값이 들어간다.
우리는 기존에 GamePlay를 기본 우선순위로 사용했기에 해당 값을 넣어주게 된다.
또한 움직임을 멈추는 방법은 StopMovement() 함수를 통해 간단하게 할 수 있다.
이를 토대로 Tick 함수에서 코드를 구현해주자.
그리고 구현하면서 MoveToActor 함수에서 접근거리를 나타내는 값을 따로 변수로 만들어서 언리얼에서 편집가능하도록 해주었다.
이제 컴파일을 해보면 AI의 시야에 플레이어가 보이면 계속해서 포커스를 맞추면서 따라오고,
만약 시야가 안보이는 곳으로 넘어가면 마지막 포커스 상태 그대로 멈춰있는 것을 볼 수 있다.
'Unreal > Udemy 강의' 카테고리의 다른 글
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-30 (0) | 2024.06.28 |
---|---|
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-29 (0) | 2024.05.07 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-27 (0) | 2024.05.07 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-26 (0) | 2024.05.06 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-25 (0) | 2024.05.06 |