런타임에 액터 스포닝하기(spawning)
저번에 만든 총을 이제 캐릭터에 연동할 차례이다.
이를 위해 우선 런타임 동안에 소총을 스포닝하는 방법을 알아보자.
액터 스폰에 대해서는 UWorld에 속한 SpawnActor 함수를 통해 스폰하게 된다.
총은 게임이 시작되자마자 캐릭터가 가지고 있어야 하므로 BeginPlay에서 해당 함수를 작성하게 된다.
해당 함수는 템플릿 함수이므로 우리가 사용할 총의 타입인 AGun을 넣어준다.
다음으로 인수를 받는데, 인수는 클래스로 받는 것이 가능하다. (UClass 타입)
기본적으로 우리는 C++에서 스폰 작업을 하지만, 여기서 해당 Gun의 블루프린트 하위를 스폰하게 된다.
이를 위해 블루프린트에 후킹할 방법을 알아야한다.
C++에서 직접 후킹하는 것은 어려우므로 다른 방법을 사용한다.
헤더로 돌아가서 액터를 스포닝하기 위해 우리가 가르켜야 할 클래스를 알아낼 수 있다.
우선 TSubOfClass 함수를 사용하여 우리가 선택할 수 있는 클래스를 블루프린트가 제한할 수 있도록 만들어준다.
(AGun 할당)
이러면 Gun C++ 클래스와 관련된 서브 클래스만 선택할 수 있게 된다.
이렇게 만든 변수를 SpawnActor의 클래스 형태의 인수로 할당하게 된다.
블루프린트에서 직접 우리가 할당할 값을 고르는 것이 가능하며, 위 제한 조건에 따라 Gun 클래스와 관련된 것만 할당이 가능하다.
그리고 SpawnActor의 리턴 값을 담을 실제 총에 대한 포인터도 필요하기에 해당 값도 선언해준다.
Gun을 사용하기 위해서 따로 헤더를 사용하거나 전방선언 처리를 해주어야 한다.
이제 실제 총(Gun)에 SpawnActor를 통해 생성된 값을 할당해준다.
이제 언리얼로 돌아가서 GunClass에 사용할 블루프린트 클래스를 할당해주자.
이제 플레이를 해보고 아웃라이너에서 BP_Rifle을 검색해보면 무사히 생성된 것을 볼 수 있다.
하지만 말그대로 생성만 되어있고 캐릭터와 연동이 전혀 되어있지 않은데 이는 이어서 다음 강의에 진행하게 된다.
'Unreal > Udemy 강의' 카테고리의 다른 글
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-15 (0) | 2024.05.03 |
---|---|
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-14 (0) | 2024.05.02 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-12 (0) | 2024.05.02 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-11 (0) | 2024.05.02 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-10 (0) | 2024.05.01 |