본문 바로가기

Unreal/Udemy 강의

Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 5-37

타격 파티클

현재 발사체를 발사할 때 타격효과가 없어서 다소 심심하게 느껴진다.

이를 개선하기 위해 발사체에 대해 타격 파티클을 추가해주자.

파티클은 맨 처음 해당 강의를 위해 다운받은 자료에 기본으로 들어있는 것을 사용한다.

 

먼저 발사체 클래스에서 UParticleSystem에 대한 변수를 선언해주어야 한다.

 

컴파일을 하고 언리얼에서 위 파티클을 직접 할당해주자.

 

이제 할당한 파티클을 발사체가 무언가를 맞히는 순간 스폰함으로서 파티클을 사용하게 된다.

이를 위해 다음과 같은 함수를 사용한다.

 

해당 함수는 언리얼 공식 문서에서 가져온 내용이나, VScode 에서 해당 함수를 살펴보면 오버로드 된 함수가 추가로 존재하는 것을 볼 수 있다.

우리는 그 중에서 하나를 선택하여 사용할 것이며, 해당 함수는 다음과 같다.

 

해당 함수는 4가지가 필수이고 나머지는 옵션인 인풋 매개 변수를 갖는다.

이는 각각 월드 컨테스트 오브젝트, 파티클 시스템, 위치와 회전이다.

파티클 시스템의 경우 우리가 선언했던 해당 파티클 시스템을 넣어주면 되고, 위치와 회전은 각각 GetActorLocation 함수와 GetActorRotation 함수를 통해 부딪히는 위치와 회전 값을 넣어주면 된다.

 

그리고 이 작업을 거치면서 해당 작업을 하게되는 OnHit 함수를 다소 수정해주었다.

기존 MyOwner 가 null 인지 아닌지 체크할때 null 이면 단순히 return 만 해주었지만 추가로 Destroy도 넣어주었다.

그리고 기존 Destroy 함수는 추가해준 것 이외에도 위치를 맨 아래로 수정하였는데, 이는 발사체가 어떤 경우에도 떠돌아다니지 않도록 하기 위함이다.

 

이제 컴파일을 하고 실행하면, 우리가 설정한 파티클이 발사체가 무언가에 맞는 순간 발생하는 모습을 볼 수 있다.