라인트레이스에서 액터 무시하기
저번에 강의에서 AI가 총을 자기 자신에게 쏘는 것을 볼 수 있었다.
이번엔 해당 오류를 고쳐보자.
이를 위해 우선 Gun.cpp에 있는 PullTrigger() 함수로 돌아가자.
여기서 FCollisionQueryParams Params를 선언하고, 해당 Params를 AddIngoredActor 함수를 통해 총과 총의 주인인 캐릭터가 무시되도록 해주자.
그리고 해당 Parmas를 LineTraceSingleByChannel에 할당해주면 간단하게 해결이 가능하다.
이제 다른 문제가 남아있는데, 바로 캐릭터가 죽었음에도 불구하고 총을 쏘고 또 캡슐 컴포넌트 또한 남아있다는 것이다.
이를 위해 ShooterCharacter 클래스의 TakeDamage 함수로 돌아가자.
해당 함수에서 만약 캐릭터가 죽었다면 DeatachFromControllerPendingDestroy() 함수를 통해 컨트롤러와 캐릭터를 분리시켜주자.
이러면 이제 플레이어가 죽으면 접근이 불가하고, AI가 죽었을 때도 총을 쏘고 있는 오류를 고칠 수 있게 된다.
그리고 CapusleComponent를 얻고, 해당 콜리즌을 없애서 캐릭터가 죽었을 때 콜리즌이 남아있지 않도록 해주었다.
'Unreal > Udemy 강의' 카테고리의 다른 글
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-41 (0) | 2024.07.20 |
---|---|
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-40 (0) | 2024.07.19 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-36 (0) | 2024.07.14 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-35 (0) | 2024.07.14 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-34 (0) | 2024.07.13 |