1. 개요
캐릭터가 들고있는 총에 대한 코드를 이전 포스트에서 구현했다.
이제 게임이 시작되는 순간에 해당 총(Rifle 액터)을 캐릭터 액터인 BP_ShooterCharacter에 소환되도록 설정한다.
2. 액터 스포닝
(1) ShooterCharacter.h
class AGun;
UCLASS()
class SIMPLESHOOTER_API AShooterCharacter : public ACharacter
{
GENERATED_BODY()
//~~~~~~~~~~~~~
private:
UPROPERTY(EditDefaultsOnly) // AGun 클래스의 서브클래스만 선택할 수 있도록 함.
TSubclassOf<AGun> GunClass;
UPROPERTY()
AGun* Gun;
};
액터를 소환하기 위해서는 해당 액터를 저장할 멤버 변수와 소환할 액터의 클래스가 필요하다.
여기에서 소환할 액터의 클래스를 TSubclassOf<AGun> 으로 지정하면, 블루프린트의 디테일 창에서 AGun의 서브 클래스만 선택하도록 할 수 있다.
(2) ShooterCharacter.cpp
void AShooterCharacter::BeginPlay()
{
Super::BeginPlay();
// 블루프린트 자손 소환
Gun = GetWorld()->SpawnActor<AGun>(GunClass);
}
(3) 언리얼 에디터
이제 컴파일하고 BP_ShooterCharacter에 들어가서 디테일 창을 확인하면 AGun의 클래스를 선택할 수 있다.
이제 게임을 실행하면 월드에 총이 소환된 것을 확인할 수 있다.
'UE 5 스터디 > C++' 카테고리의 다른 글
6. 액터에 데미지 입히기(FDamageEvent, TakeDamage) (0) | 2024.03.07 |
---|---|
5. 라인 트레이스(LineTraceSingleByChannel) (0) | 2024.03.06 |
4. 이펙트 스포닝하기(SpawnEmitterAttached) (0) | 2024.03.06 |
3. 액터를 다른 액터에 붙이기(AttachToComponent) (0) | 2024.03.06 |
1. C++ 액터 클래스에 컴포넌트 추가하기(CreateDefaultSubobject, SetupAttachment) (2) | 2024.03.06 |